比较查询和不计算分数

时间:2018-09-29 02:05:23

标签: elasticsearch

我想知道是否可以针对should类型的查询禁用分数计算,或者是否可以为过滤器上下文添加OR

ES版本:6 +

例如:

此查询将搜索records OR voIds中的匹配项,并将计算分数

POST customers/_search
{
  "size": 10000,
  "version": true,
  "query": {
    "bool": {
      "should": [
        {
          "terms": {
            "voIds": [
              78031203, ...
            ]
          }
        },
        {
          "terms": {
            "records.keyword": [
              "S3G82U", ....
            ]
          }
        }
      ]
    }
  }
}

此查询将过滤records voIds都匹配的文档,并且不计算分数。不是我需要的,因为它使用了 AND

POST customers/_search
{
  "size": 10000,
  "version": true,
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "voIds": [
              78031203
            ]
          }
        },
        {
          "terms": {
            "records.keyword": [
              "S3G82U"
            ]
          }
        }
      ]
    }
  }
}

我的目标是对有无分数的相同查询的性能进行故障排除。所以我有第一个分数的查询。没有分数怎么写第二个查询?

谢谢。

2 个答案:

答案 0 :(得分:1)

这是不可能的。而且我认为用例功能不多。您是否在Elasticsearch或查询本身中看到速度缓慢?

答案 1 :(得分:0)

您不能完全禁用计分功能。但是您可以禁用query coordination。完全不知道对性能有多大帮助。