【问题标题】:Solr Sort Performance issuesSolr 排序性能问题
【发布时间】:2011-10-11 21:05:35
【问题描述】:

我试图在我的查询中对字符串字段指定排序,但由于索引有大约 50M 文档,因此发现内存问题。

为什么 Solr 实际上对索引中所有文档的字段值进行排序,而不仅仅是从查询返回的命中。有没有替代这些性能问题的方法。

【问题讨论】:

  • 您能提出您的要求吗?
  • 这里是... q=-uid:XXX+%2B(fid:XXX)&sort=firstName%20asc SolrQuery 结果 = new SolrQuery(); result.setFields("uid,score,firstName"); . . . . . . result.setQuery(query.toString()); result.setSortField("firstName", ORDER.asc);
  • 您的索引中有多少文档,查询满足了多少?

标签: lucene solr


【解决方案1】:

对于您的查询,使用过滤查询可能会更快。

q=*:*&fq=-uid:XXX&fq=%2B(fid:XXX)&sort=firstName%20asc

http://wiki.apache.org/solr/CommonQueryParameters

【讨论】:

  • 你的意思是使用 rangeQueries 作为 fq?
  • 不,我发现过滤查询往往工作得更快,因为它们限制了可以返回的结果集,这使得排序更容易。由于您的查询很简单,我会尝试一下。
  • 它不会仍然加载索引中所有文档的字段值吗?
猜你喜欢
  • 2010-12-21
  • 1970-01-01
  • 2016-10-30
  • 2011-11-23
  • 1970-01-01
  • 2017-01-01
  • 2012-07-25
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多