Lucene中大型#文档的索引性能

时间:2015-03-18 14:18:07

标签: solr elasticsearch lucene full-text-search

我一直在使用postgresql进行全文搜索,将文章列表与包含特定单词的文档进行匹配。性能随着数量的增加而降低。的行。我一直使用postgresql支持全文搜索,这使得性能更快,但随着时间的推移,随着文章的增加,搜索速度变慢。

我刚刚开始使用solr进行搜索。通过网络上的各种资源,我发现它可以做更多的事情,而不是搜索,让我更好地控制我的结果。

Solr似乎使用inverted index,如果许多文档(超过100万)包含用户开始查询的搜索字词,性能会降低 ?此外,如果我通过搜索术语的分页限制结果,在计算文档的score时,是否需要先加载所有100万个文档然后限制结果会降低性能许多文件都有相同的词?

首先可以通过分数对索引进行排序,以避免以后加载文档吗?

1 个答案:

答案 0 :(得分:0)

Lucene旨在解决您提到的所有问题。除了倒排索引外,还有发布列表,docvalues,索引和存储值的分离等。

然后你有Solr在其上面添加更多好东西。

100万份文件是Lucene / Solr的入门级问题。它正在对索引Wikipedia转储进行常规测试。

如果您认为自己确实需要了解它是如何工作的,而不仅仅是放心,请查看Lucene上的书籍,包括旧书。还要检查Lucene Javadocs - 它们通常还有其他信息。