从3.0.3 Lucene的净性能问题升级到4.8后

问题描述 投票:1回答:1

从3.0.3迁移到4.8后,索引新文档的速度比3.0.3慢

但是索引文件的大​​小比3.0.3小得多。

这里是我的代码

private IndexReader reader;
private IndexSearcher searcher;

var writeconfig = new IndexWriterConfig(Lucene.Net.Util.LuceneVersion.LUCENE_48, analyzer);

    writer = new IndexWriter(_directory, writeconfig);

    foreach (var member in list_of_members)
    {

    new_(writer, member.name,member.surname, member.location); 

    }
    writer.Dispose();
    reader = DirectoryReader.Open(index_location);

    searcher = new IndexSearcher(reader);

    public void new_(Lucene.Net.Index.IndexWriter writer, string name, string surname, string location)
    {


        Document doc = new Document();

        doc.Add(new StringField("name", name, Field.Store.YES));
        doc.Add(new TextField("surname", surname, Field.Store.YES));
        doc.Add(new StringField("location", location, Field.Store.YES));

        writer.AddDocument(doc);

            }

与3.0.3进行索引时相比,将新文档慢4.8倍。

编辑1:发现了字段压缩的性能问题;

找到有关存储字段压缩field compression性能的网络专家

在网站上,他们解释了在Java中禁用压缩,但是无法将代码转换为C#...

现在我的问题是,如何使用lucene.net 4.8禁用字段压缩?

从3.0.3迁移到4.8后,索引新文档的速度比3.0.3慢,但是索引文件的大​​小比3.0.3小得多。这是我的代码私有IndexReader阅读器;私人IndexSearcher搜索器; ...

lucene.net
1个回答
0
投票

似乎是压缩问题,在版本41之后,默认情况下压缩字段存储。在这种情况下,压缩代价太大。

© www.soinside.com 2019 - 2024. All rights reserved.