我是ES新手,我正在尝试构建一个查询,它会将phrase_prefix用于多个字段,因此我不必多次搜索。
这是我到目前为止所得到的:
{
"query" : {
"text" : {
"first_name" : {
"query" : "Gustavo",
"type" : "phrase_prefix"
}
}
}
}'
有人知道如何搜索多个字段,比如说“last_name”吗?
答案 0 :(得分:39)
您之前使用的text query已被弃用(有效地重命名),而不是match query。匹配查询支持单个字段,但您可以使用支持相同选项的multi_match query,并允许搜索多个字段。以下是一个应该对您有所帮助的示例:
{
"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);