Elastic Search 为单个搜索设置字段权重

Ste*_* Z. 3 elasticsearch

我对弹性搜索非常陌生,比如说在我的文档中我有字段 A、B、C、D,并且我想在所有字段中搜索单词“test”。

我希望每个字段都有不同的权重(即 A 有 10,B 有 8,C 有 5,D 有 2)。如何编写 es 查询来对我正在搜索的单词执行该查询。

Jay*_*ion 6

这是一个经典的用例。最简单的方法是使用带有助推器的多重匹配查询。在多重匹配中,将 ^boostvalue 添加到字段名称以对其应用增强

GET test/_search
{
  "query": {
    "multi_match": {
      "query": "test",
      "fields": ["A^10", "B^5", "C^2"]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)