【问题标题】:Elasticsearch find exact text in multiple fields using single queryElasticsearch 使用单个查询在多个字段中查找精确文本
【发布时间】:2015-01-19 22:17:51
【问题描述】:

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

“标识符”(字符串)分析

“描述”(字符串)分析

“remark”(字符串)分析

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

例如如果我搜索 blue car,它会使用正确的评分算法等显示相关结果。

虽然我也需要实现类似 google 的完全匹配查询

例如“blue car” 应该只返回在任何字段的文本中anywhere出现确切短语“blue car”的文档。。 p>

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

非常感谢!

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

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

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

    【讨论】:

    • 我已经尝试过查询,但我不相信它这么简单。非常感谢
    • 我认为这不适用于完全匹配。键入“phrase”会执行“match_phrase”,它不会检查确切的字符串。 (参考:stackoverflow.com/questions/26001002/…)。相反,它会检查所有查询词是否以相同的顺序出现。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多