是否可以在 lucene 中使用负查询提升?

发布于 2024-10-06 16:05:21 字数 89 浏览 4 评论 0原文

我想惩罚查询中的某些术语,而不是完全忽略它们,因此“不得”运算符不起作用? 是否可以在 lucene 的布尔查询中使用 SHOULD 的负查询提升,它是如何工作的?

I want to penalize some terms in query, not to ignore them at all so "MUST NOT" operator will not work?
Is it possible to use negative query boost with SHOULD in boolean query in lucene, how does it work?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

想念有你 2024-10-13 16:05:22

是的,查询词提升只是一个乘法因子,因此将其设置为负值将获得您想要的效果。

这是 lucene 邮件列表中讨论负提升。

总之,类似于 NOT,但不太严格,因为匹配文档仍将出现在搜索结果中,即

任何正分数 (>0) 都会产生增加默认分数的影响。

任何负分数(<0)都会降低默认分数。

Yes, a query term boost is simply a multiplication factor, so setting it to a negative value will have the affect you want.

Here's a thread from the lucene mailing list discussing negative boost.

In summary in is like a NOT but less strict, in that matching documents will still appear in search results i.e.

Any positive score (>0) will have the affect of increasing the default score.

Any negative score (<0) will have the affect of decreasing the default score.

囚你心 2024-10-13 16:05:22

似乎从 Lucene 8 开始就不再允许它们了:

Lucene 8 中不允许负分,因此我们应该确保
我们不会故意生产任何东西。下面是一个
(希望)负值应该出现的地方的详尽列表
在 es 7 中被禁止,在 6x 中已弃用:

查询提升应始终为正(禁止负查询提升
#34486)现场提升应该始终是积极的。 script_score 函数应返回正分数。 (禁止负分
function_score 查询 #35709) 脚本相似性应该返回
积极的分数。 (向自定义/脚本化添加最低限度的健全性检查
相似之处。 #33564)自定义相似度应返回正数
分数。 (对自定义/脚本相似性添加最低限度的健全性检查。
#33564)

查询和字段提升很简单,在解析查询期间可以检测到负值。对于相似之处和脚本
我们无法轻易推断这些值是否可以为负,因此我们将
必须在查询执行期间检查分数,如果出现以下情况则请求失败
产生负分。

来源:https://github.com/elastic/elasticsearch/issues/33309

Seems that they are since Lucene 8 no longer allowed:

Negative scores are not allowed in Lucene 8 so we should make sure
that we don't produce any deliberately. The following is an
(hopefully) exhaustive list of places where negative values should be
forbidden in es 7 and deprecated in 6x:

Query boosts should always be positive (Disallow negative query boost
#34486) Field boosts should always be positive. script_score function should return positive scores. (Forbid negative scores in
function_score query #35709) Scripted similarity should return
positive scores. (Add minimal sanity checks to custom/scripted
similarities. #33564) Custom similarity should return positive
scores. (Add minimal sanity checks to custom/scripted similarities.
#33564)

Query and field boosts are trivial, negative values can be detected during the parsing of the query. For similarities and scripts
we cannot infer easily if the values can be negative or not so we'll
have to check scores during query execution and fail the request if a
negative score is produced.

Source: https://github.com/elastic/elasticsearch/issues/33309

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文