java - Solr分页性能

标签 java lucene solr

我已阅读( http://old.nabble.com/using-q%3D--,-adding-fq%3D-to26753938.html#a26805204 ):

FWIW: limiting the number of rows per request to 50, but not limiting the start doesn't make much sense -- the same amount of work is needed to handle start=0&rows=5050 and start=5000&rows=50.

比他完成:

There are very few use cases for allowing people to iterate through all the rows that also require sorting.

是吗?仅对于排序结果来说是这样吗?

您建议使用多少页(每页 10 行)来允许用户进行迭代?

Solr 1.4 是否也存在同样的限制?

最佳答案

是的,对于 Solr 1.4 也是如此。这并不意味着 start=0&rows=5050start=5000&rows=50 具有相同的性能,因为前者必须返回 5050 个文档而后者只有 50。传输的数据更少 -> 更快。​​

Solr 没有任何方法可以在单个页面中获取所有结果,因为它没有多大意义。相比之下,您无法在单个查询中获取整个 Google 索引。没有人真的需要这样做。

应用程序的页面大小应该是用户可定义的(即用户可以选择一次查看 10、25、50 或 100 个结果)。

默认页面大小取决于您分页的数据类型以及结果的实际相关程度。例如,在 Google 上搜索时,您通常不会超出前几个结果,因此 10 个元素就足够了。另一方面,eBay 更多的是浏览结果,因此默认情况下每页显示 50 个结果,甚至每页不提供 10 个结果。

您还必须考虑滚动。用户在尝试浏览200-result page时可能会迷失方向。 ,更不用说加载时间要长得多。

关于java - Solr分页性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2123778/

相关文章:

java - 为什么这不能编译?无法为匿名类的 String 成员分配新值

java - 重置计数器或让它增加并使用模数是否更有效

java - java中main调用其他方法

solr - 了解 Lucene 领先的通配符性能

java - 解决方案 "Undefined field text"

java - AsyncTask 中出现空指针异常?

java - 我们可以仅在初始设置时创建一次 Lucene 索引吗?

java - Lucene中的多词查询

java - 如何用 Jetty 修复 "Could not find necessary SLF4j logging jars"?

bash - 如何执行solr zookeeper CLI上传solr配置