【问题标题】:Multi-query match_phrase_prefix elasticsearch多查询 match_phrase_prefix elasticsearch
【发布时间】:2019-01-22 19:30:19
【问题描述】:

我想为同一个字段查询 2 个不同的前缀。下面的代码完全按照我在现场使用时的方式工作:

GET  /logstash-*/_search
{
    "query": {
        "match_phrase_prefix" : {
            "type" : {
                "query" : "job-source"
            }
        }
    }
}

我在文档中找不到如何使用两个查询来执行此操作(我找到了如何在多个字段中搜索)。我尝试了一个布尔值应该和下面的 sn-p,但两者都没有给我我正在寻找的结果。

GET  /logstash-*/_search
{
    "query": {
        "match_phrase_prefix" : {
            "type" : {
                "query" : ["job-source","job-find"]
            }
        }
    }
}

如何仅查询以 type:job-source 或 type:job-find 为前缀的文档?

提前谢谢你,

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您可以使用 should 组合两个 match_phrase_prefix 查询并将 minimum_should_match 设置为 1。

    示例查询:

    {
        "query":
        {
            "bool":
            {
                "should": [
                {
                    "match_phrase_prefix":
                    {
                        "type": "job-source"
                    }
                },
                {
                    "match_phrase_prefix":
                    {
                        "type": "job-find"
                    }
                }],
                "minimum_should_match": 1
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-09-09
      • 2022-01-06
      • 2020-06-29
      • 2016-04-22
      • 1970-01-01
      • 2016-08-18
      • 2018-05-14
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多