elasticsearch,min,Json,elasticsearch,Min" /> elasticsearch,min,Json,elasticsearch,Min" />

Json `最低分数`不';Elasticsearch中的“rescore”不起作用

Json `最低分数`不';Elasticsearch中的“rescore”不起作用,json,elasticsearch,min,Json,elasticsearch,Min,我希望删除分数小于1的所有文档,但以下查询不起作用: curl "http://localhost:9200/megacorp/_search" -d '{ "min_score": 1, "query": { "matchAll": {} }, "rescore": { "query": { "score_mode": "min", "rescore_query": { "match": {"first_name": "J

我希望删除分数小于
1
的所有文档,但以下查询不起作用:

curl "http://localhost:9200/megacorp/_search" -d '{
  "min_score": 1,
  "query": {
    "matchAll": {}
  },
  "rescore": {
    "query": {
      "score_mode": "min",
      "rescore_query": {
        "match": {"first_name": "Jane"}
      }
    }
  }
}'
看起来
min\u分数
不适用于
rescore


正确的方法是什么?

我认为您混淆了
minu score
rescore
的概念。两者的用途不同

min_分数
应用于初始查询。在您的情况下,它是
match_all
查询,因此每个文档返回的分数都是1,此分数将根据
min_分数
进行检查,而不管
重新存储
做了什么

重新存储
用于影响返回文档(您的初始查询)的
评分
。它不影响结果的计数,只影响结果的顺序。因此,即使
“match”:{“first_name”:“Jane”}
得分小于1,它也会显示出来。类似地,如果使用
score\u模式:total
且总分大于1,但如果原始查询的分数小于1,则不会显示在结果中

您可以使用来了解如何计算分数。最后,如果您想玩
评分
,您可以查看或


我希望这能澄清疑问。

我认为你混淆了
min\u分数
rescore
的概念。两者的用途不同

min_分数
应用于初始查询。在您的情况下,它是
match_all
查询,因此每个文档返回的分数都是1,此分数将根据
min_分数
进行检查,而不管
重新存储
做了什么

重新存储
用于影响返回文档(您的初始查询)的
评分
。它不影响结果的计数,只影响结果的顺序。因此,即使
“match”:{“first_name”:“Jane”}
得分小于1,它也会显示出来。类似地,如果使用
score\u模式:total
且总分大于1,但如果原始查询的分数小于1,则不会显示在结果中

您可以使用来了解如何计算分数。最后,如果您想玩
评分
,您可以查看或


我希望这能澄清疑问。

@user这是
评分模式
@user这是
评分模式
。感谢您的解释。你是说
rescore
不受
min\u分数设计的影响,对吗?如果是这样的话,有没有办法在
重新存储后根据重新存储的分数删除不需要的结果?很高兴我能提供帮助。是的,您可以删除不需要的结果,但您必须遍历每个返回的文档,并检查其
\u分数
,因为这将是重新存储查询后计算的分数。感谢您的快速响应。由于不必要的网络和计算成本,我不想从Elasticsearch中获取不需要的文档。有没有可能在Elasticsearch中过滤掉它们,而不是在应用程序中?我不知道这样的事情,我唯一能建议的是将您的重新存储查询放在主查询中,但我猜这不是您想要的。谢谢您的解释。你是说
rescore
不受
min\u分数设计的影响,对吗?如果是这样的话,有没有办法在
重新存储后根据重新存储的分数删除不需要的结果?很高兴我能提供帮助。是的,您可以删除不需要的结果,但您必须遍历每个返回的文档,并检查其
\u分数
,因为这将是重新存储查询后计算的分数。感谢您的快速响应。由于不必要的网络和计算成本,我不想从Elasticsearch中获取不需要的文档。有没有可能在Elasticsearch中过滤掉它们,而不是在应用程序中?我不知道这样的事情,我唯一能建议的是将您的重新存储查询放在主查询中,但我猜这不是您想要的。