使用结构化查询语法,在与文本字段中的某个关键字匹配时如何减少_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