我已经在solr中获得了此查询。问题是,我正在搜索包含名为“PRD DELETED”的项目类别的搜索结果。 现在所有的“PRD DELETED”项目,我想显示在最后。 例如,如果100条记录存在且一页包含25条记录,则应在最后一页显示“PRD DELETED”记录。SOLR向下提升值字段值
请注意“PRD DELETED”是一个值,不是任何类别。我认为在这里需要减压,但我无法找到确切的解决方案。
这里的任何建议将是一个很大的帮助。
我已经在solr中获得了此查询。问题是,我正在搜索包含名为“PRD DELETED”的项目类别的搜索结果。 现在所有的“PRD DELETED”项目,我想显示在最后。 例如,如果100条记录存在且一页包含25条记录,则应在最后一页显示“PRD DELETED”记录。SOLR向下提升值字段值
请注意“PRD DELETED”是一个值,不是任何类别。我认为在这里需要减压,但我无法找到确切的解决方案。
这里的任何建议将是一个很大的帮助。
解决方案通常是做相反的事情:提升所有未被删除的文档,而不是试图消极地提升那些文档。助推器可以是乘法运算或叠加运算,而乘法运算可以降低得分值,但添加剂不能。 bq
和qf
是加法的,而boost
是乘法的。
的Relevancy FAQ has an example这种情况:
当使用(E)dismax,人们有时会想到的是,指定用在大型升压纯负查询“BQ”参数就可以了(因为Solr中会自动顶通过添加一个隐含的“:” - 但这不适用于“bq”,因为通过“bq”指定的查询直接添加到主查询中,您需要明确。 ..
?defType=dismax &q=foo bar &bq=(*:* -xxx)^999
将它作为乘法增强来实现可能会涉及使用if
,然后根据字段是否具有给定值返回1或更低的值。