了解Solr函数查询性能

问题描述 投票:1回答:1

我在Solr中使用“edismax”和“function-query”解析器,并且很难理解“function-query”所花费的查询时间是否有意义。我正在尝试优化的查询如下所示:

q = {!func sum($ q1,$ q2,$ q3)}其中q1,q2,q3是edismax查询。

edismax查询返回的QTime大约需要50ms,但似乎函数查询是速率确定步骤,因为上面的组合查询需要大约200-300ms。我还使用常量分析了函数查询的性能。

不同q的QTime结果如下:

  • q = {!func} sum(10,20)为097ms
  • q = {!func} sum(10,20,30)为109ms
  • q = {!func} sum(10,20,30,40)的127ms
  • q = {!func} sum(10,20,30,40,50)的145ms

这种趋势有意义吗?函数查询预计会变慢吗?

是什么让edismax查询更快?

如何优化原始查询(edismax子查询q1,q2,q3)在100ms以下工作?

search solr lucene information-retrieval edismax
1个回答
0
投票

func查询枚举所有文档,因此它不提供任何选择性。你可能不需要在docs上评估它,它与dismaxes不匹配,例如

q=+{!v=$q1} +{!v=$q2} +{!v=$q3} {!func sum($q1,$q2,$q3)}
© www.soinside.com 2019 - 2024. All rights reserved.