了解Solr函数查询性能
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了了解Solr函数查询性能相关的知识,希望对你有一定的参考价值。
我在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以下工作?
答案
func查询枚举所有文档,因此它不提供任何选择性。你可能不需要在docs上评估它,它与dismaxes不匹配,例如
q=+{!v=$q1} +{!v=$q2} +{!v=$q3} {!func sum($q1,$q2,$q3)}
以上是关于了解Solr函数查询性能的主要内容,如果未能解决你的问题,请参考以下文章