无法理解查询solr上的排序数据

时间:2018-01-05 09:51:38

标签: sorting solr lucene

我正在尝试理解我在Legacy代码中找到的solr排序条款 -

q=*:*
sort=product(if(salesAmount,salesAmount,0.05), query($sortbq)) desc,
sortbq=*:*^10.000 brand:"nike"^1.600
fl=salesAmount,queryVal:query($sortbq)

结果中的示例文档看起来像 -

<!-- FOR brand=nike -->
<doc>
<double name="salesAmount">91743.75</double>
<str name="brand">Nike</str>
<float name="queryVal">2.3159266</float>
</doc>
<!-- FOR brand!=nike -->
<doc>
<str name="prdId">1070694</str>
<double name="sls_amt">92660.75</double>
<str name="brand">Lee</str>
<float name="queryVal">0.19959758</float>
</doc>

有人可以解释这个query($sortbq))如何计算完成排序的单个值吗?我尝试使用debug=true进行solr查询,并在调试部分中获取以下值 -

<str name="1139424">
1.0 = *:*, product of: 1.0 = boost 1.0 = queryNorm
</str>
<str name="1011619">
1.0 = *:*, product of: 1.0 = boost 1.0 = queryNorm
</str>

PS:如果有人选择对此问题进行投票,请在评论中提及原因。

1 个答案:

答案 0 :(得分:1)

请尝试将您的sort子句放在solr查询的bq中并输入&#34; debug.explain.structured = true&#34; 您将找到如何计算排序分数。