有没有人知道让Lucene(或Solr)返回非常长结果集而不仅仅是通常的“前10名”的性能影响。 我们希望从用户搜索中返回所有结果(可以是大约100.000个文档),然后在返回实际结果之前对返回的文档ID进行后处理。
我们当前的索引包含大约1000万到2000万份文档。
答案 0 :(得分:2)
正如弗拉夫所说,任何形式问题的答案“X会足够快吗?”是:“这取决于。”
我会担心:
我不知道你在做什么,但有可能用自定义分数算法完成。
当然,仅仅因为搜索所有文档会比较慢,这并不意味着它太慢而无法使用。一些分面实现基本上可以获得所有匹配的文档,并且这些文档对许多人来说都是充分的。
答案 1 :(得分:2)
我能够在2.5秒内获得100,000行,其中2700万个文档被索引(每个文档有1k字节,大约600B的文本字段)。硬件并不普通,它有128 GB的RAM。 Solr的内存使用情况如下:Res为50GB Virt为106GB。
我开始看到8000万份文档后的性能下降。目前正在研究如何将硬件与问题相匹配。希望对你有帮助。