从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搜索器; ...
似乎是压缩问题,在版本41之后,默认情况下压缩字段存储。在这种情况下,压缩代价太大。