2016-01-18 59 views
0

我已经在solr中获得了此查询。问题是,我正在搜索包含名为“PRD DELETED”的项目类别的搜索结果。 现在所有的“PRD DELETED”项目,我想显示在最后。 例如,如果100条记录存在且一页包含25条记录,则应在最后一页显示“PRD DELETED”记录。SOLR向下提升值字段值

请注意“PRD DELETED”是一个值,不是任何类别。我认为在这里需要减压,但我无法找到确切的解决方案。

这里的任何建议将是一个很大的帮助。

回答

0

解决方案通常是做相反的事情:提升所有未被删除的文档,而不是试图消极地提升那些文档。助推器可以是乘法运算或叠加运算,而乘法运算可以降低得分值,但添加剂不能。 bqqf是加法的,而boost是乘法的。

Relevancy FAQ has an example这种情况:

当使用(E)dismax,人们有时会想到的是,指定用在大型升压纯负查询“BQ”参数就可以了(因为Solr中会自动顶通过添加一个隐含的“” - 但这不适用于“bq”,因为通过“bq”指定的查询直接添加到主查询中,您需要明确。 ..

?defType=dismax 
&q=foo bar 
&bq=(*:* -xxx)^999 

将它作为乘法增强来实现可能会涉及使用if,然后根据字段是否具有给定值返回1或更低的值。