多查询match_phrase_prefix elasticsearch

时间:2018-08-15 21:42:53

标签: elasticsearch

我想为同一字段查询2个不同的前缀。下面的代码完全按照我在野外工作时的期望工作:

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

我在文档中找不到如何通过两个查询执行此操作(我发现了如何在多个字段中进行搜索)。我已经尝试了布尔值应该和下面的代码段,但是都没有给我想要的结果。

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

我如何仅查询具有类型:job-source或type:job-find作为前缀的文档?

先谢谢您

1 个答案:

答案 0 :(得分:0)

您可以使用应当组合两个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
        }
    }
}