Hi,

I am trying to use a lucene as a kind of key value store, but I encountered
some bad performance issues. When I try to add my data as documents to the
index I get an average write rate of 3 documents / second!! This seems to
me ridiculously slow and I guess I must have somewhere an error. Please
have a look at my code:



        Directory dir = new niofsdirectojava-u...@lucene.apache.org!
java-user@lucene.apache.org!ry(file);
        Analyzer analyzer =  new StandardAnalyzer(Version.LUCENE_45);
        IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_45,
analyzer);
        IndexWriter writer = new IndexWriter(dir, config);

        int eventCount = 1000;
        for(int i=0; i < eventCount;i++){
            Document doc = new Document();
            doc.add(new StringField("id", i+"id" ,Store.YES));
            doc.add(new StoredField("b", buildVector()));
            writer.addDocument(doc);
            writer.commit();
        }
        dir.close();
        writer.close()


Not calling the commit function seems to fix the issue, but I guess this
would then have some issues if I want to read values in the mean time. My
normal use case would be to read something from the index, maybe alter it
and then write back. So I would have roughly 50% of reads.

I tried also an embedded version of elastic search and it manages to go to
2000 documents/ per second. As its based on lucene as well I guess I do
something wrong in my code.


THX for the help,

Klaus


-- 

-- 

Klaus Schaefers
Senior Optimization Manager

Ligatus GmbH
Hohenstaufenring 30-32
D-50674 Köln

Tel.:  +49 (0) 221 / 56939 -784
Fax:  +49 (0) 221 / 56 939 - 599
E-Mail: klaus.schaef...@ligatus.com
Web: www.ligatus.de

HRB Köln 56003
Geschäftsführung:
Dipl.-Kaufmann Lars Hasselbach, Dipl.-Kaufmann Klaus Ludemann,
Dipl.-Wirtschaftsingenieur Arne Wolter

Reply via email to