在 Solr 中,我们可以取最大分数而不是 SUM for 或 子句吗?



我正在处理一个 Solr 查询,该查询具有 4 个 OR 条件和一个 AND 条件:

(
(
{!dismax qf=respondent_address_txt mm=3<70% v=$q2}^3.0 
OR 
{!dismax qf=respondent_addresses_txt mm=3<70% v=$q2}^1.0 
OR 
{!dismax qf=respondent_address_txt mm=3<70% v=$q3}^3.0 
OR 
{!dismax qf=respondent_addresses_txt mm=3<70% v=$q3}^1.0 
) 
AND  
{!dismax qf=respondent_name_txt mm=2<70% v=$q1}^3.0
)

对于OR条件的分数是否有可能不加起来,而是应该取最大值,

假设 4 个单独的查询部分导致分数为 1,2,3,4,而不是总分 10,它应该是 4。

是的,(e(dismax 查询解析器允许使用tie参数精确地做到这一点。

默认值已经进行了"析取最大查询",因此使用总和意味着此参数可能会在您的配置或请求中的某个地方被覆盖(设置为1.0而不是0.0(。

平局参数允许您控制 查询将受到较低评分字段的分数的影响 与得分最高的领域相比。

  • 值">0.0"(默认值(使查询成为纯粹的"析取 最大查询":即,只有最大得分子查询有助于 最终得分。

  • 值">1.0"使查询成为纯"析取和查询",其中 最大评分子查询是多少并不重要,因为 最终分数将是子查询分数的总和。通常为低 值(如 0.1(很有用。

最新更新