20

I'm new to ES and I'm trying to build a query that would use phrase_prefix for multiple fields so I dont have to search more than once.

Here's what I've got so far:

{ 
    "query" : { 
        "text" : { 
            "first_name" : { 
                "query" : "Gustavo", 
                "type" : "phrase_prefix" 
            }
        } 
    }
}'

Does anybody knows how to search for more than one field, say "last_name" ?

4

1 回答 1

51

您正在使用的文本查询已在不久前被弃用(有效地重命名)以支持匹配查询。match 查询支持单个字段,但您可以使用multi_match 查询,它支持相同的选项并允许搜索多个字段。这是一个应该对您有帮助的示例:

{
    "query" : {
        "multi_match" : {
            "fields" : ["title", "subtitle"],
            "query" : "trying out ela",
            "type" : "phrase_prefix"
        }
    }
}

您可以使用 Java API 实现相同的目的,如下所示:

QueryBuilders.multiMatchQuery("trying out ela", "title", "subtitle")
    .type(MatchQueryBuilder.Type.PHRASE_PREFIX);
于 2013-07-12T11:52:43.887 回答