solr 如何在查询中正确使用提升因子?

solr how to properly use boost factor in a query?

好的,所以我在 qf 中使用了很多字段,例如:

[qf] => frpId^5 fundraise_title^3 fundraiser_display_name^3 charity_name^2 participantFname^2 participantLname^2 participantEmail^1 groupName^3 fundraise_text^ fundraiseTitleExact^15 fundraiserDisplayNameExact^15 charityNameExact^15 participantFnameExact^10 participantLnameExact^10 groupNameExact^10 all^

但我真的希望将 fundraiseTitleExact 字段的完全匹配放在首位。

根据之前的 qf 设置,它们位于第 32 位。

假设我正在提升 fundraiseTitleExact,例如:

[qf] => frpId^5 fundraise_title^3 fundraiser_display_name^3 charity_name^2 participantFname^2 participantLname^2 participantEmail^1 groupName^3 fundraise_text^ fundraiseTitleExact^15000000000000000 fundraiserDisplayNameExact^15 charityNameExact^15 participantFnameExact^10 participantLnameExact^10 groupNameExact^10 all^

但即使是现在,fundraiseTitleExact 精确匹配也仅位于第 27 位(向上 5 个位置)并且不会上升。

我如何才能将此字段优先于其他字段?

这看起来更像是一个调整问题,但是您有多种选择:

  1. 调整你的相关性修改所有的提升,直到你得到预期的结果(我建议使用比你问题中的低的提升,然后增加最重要领域的提升) ;

  2. 如果您正在使用 edismax query parser 那么您可能需要检查 bq 和 bf 参数以提高您的任期;

  3. 如果情况变得更糟,您可以使用 Query Elevation Component 将一些条目放在列表的顶部。

我建议阅读以下书籍以扩大您对 solr 增强和相关机制的了解: