使用游标性能问题获取大量排序结果

时间:2018-03-12 01:42:15

标签: solr solr4

我根据https://lucene.apache.org/solr/guide/6_6/pagination-of-results.html#fetching-a-large-number-of-sorted-results-cursors使用游标在solr中搜索和导出特定文档。

我们使用solr 4.10.3并通过一个主节点和两个从节点隔离读/写,从节点 poll internal是1分钟,并通过maxSegments = 10每周优化收集。现在该系列中有大约100,000,000份文件。

我们在获取大量排序结果时遇到了搜索效果。每次检查,主要瓶颈是排序。搜索网址与http://192.168.238.133:8080/solr/collection1/select?q=*:*&rows=1000&sort=id+asc&cursorMark=*类似,只需几分钟即可将结果返回给客户端(甚至结果计数= 0 ,不只是对结果文档进行排序???)。当我们卷曲http://192.168.238.133:8080/solr/collection1/select?q=*:*&rows=1000&start=0时,我们可以在几秒钟内得到结果。当我们卷曲http://192.168.238.133:8080/solr/collection1/select?q=*:*&sort=id+asc&rows=1000&start=0时,游标查询的性能很差。

BTW,id模式定义是默认的:

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 

获取大量已排序结果”时如何改善排序效果?如果我们将ID类型从字符串更改为,这会有用吗?

1 个答案:

答案 0 :(得分:0)

为id字段启用DocValues。

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" docValues="true" />

不幸的是,默认情况下它已启用,因为solr 6,您需要手动启用它并重新索引所有数据。