Elasticsearch 使用单个查询在多个字段中找到准确的文本

Elasticsearch find exact text in multiple fields using single query

我有一个包含多个字段的文档,例如

"identifier"(字符串)已分析

"description"(字符串)已分析

"remark"(字符串)已分析

当然,基于一般评分的查询效果很好。

例如如果我搜索 blue car 它会显示具有正确评分算法等的相关结果

尽管我也有实现 google 类精确匹配查询的要求

例如"blue car" 应该只 return 文档 "blue car" 出现在任何地方 [=] 30=]任意字段.

实现这个的最佳方法是什么?

非常感谢!

试试这个,意思是 multi_match with phrase type:

{
  "query": {
    "multi_match": {
      "query": "blue car",
      "fields": [
        "text",
        "message",
        "whatever"
      ],
      "type": "phrase"
    }
  }
}