多次比赛不能以恒定分数工作

时间:2018-06-24 22:13:12

标签: elasticsearch

我正在尝试使用constant_score对multi_match查询禁用TF / IDF。

input type="email"

但是我遇到了以下错误:

GET cities/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "constant_score": {
            "query": {
              "multi_match": {
                "query": "new york",
                "fields": [
                 "city",
                 "village"
                ]
              }
            }
          }
        }
      ]
    }
  }
}

我也尝试过不使用查询包装器

 "reason": "[constant_score] query does not support [query]".

但是我遇到了以下错误:

GET cities/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "constant_score": {
                  "multi_match": {
                    "query": "new york",
                    "fields": [
                     "city",
                     "village"
                    ]
                  }
              }
            }
          ]
        }
      }
    }

是否存在将它们一起使用的解决方法?

1 个答案:

答案 0 :(得分:1)

我不是弹性搜索方面的专家,但请阅读this documentation

  

constant_score查询

     

包装另一个查询但执行的查询   它在过滤器上下文中。所有匹配的文件都具有相同的名称   “恒定” _score。

我相信您需要这样的东西:

GET cities/_search
{
  "query": {
    "constant_score": {
      "filter": {
        "multi_match": {
          "query": "new york",
          "fields": [
            "city",
            "village"
          ]
        }
      }
    }
  }
}