Используя синтаксис структурированного запроса, как мне уменьшить _score
при сопоставлении по определенному ключевому слову в текстовых полях без полного исключения этих совпадений?
Например, я могу повысить некоторые ключевые слова относительно других с помощьюиспользуя следующие выражения как часть параметра q
:
(or (not (term 'something')) (term boost=10 'something'))
В этом примере возвращаются все результаты независимо от того, есть ли совпадение для «чего-то», но совпадения с «чем-то» ранжируютсянамного выше из-за boost=10
.
То, что я хочу сделать, является противоположностью примера, где все результаты возвращаются, но результаты, соответствующие «чему-то», должны быть ранжированы намного НИЖЕ, чем результаты, которые не содержат'что-то'.
Я пробовал это, но они не работают:
(or (not (term 'something')) (term boost=-10 'something'))
// Negative not allowed in syntax
(or (not (term 'something')) (term boost=0.1 'something'))
// Results are almost the same as without this expression
(or (not (term boost=10 'something')) (term 'something'))
// Results are exactly the same as without this expression
(or (not boost=10 (term 'something')) (term 'something'))
// Results are exactly the same as without this expression