通过多个字段进行匹配的查询

我是弹性搜索的新手,想写一个关于两个字段的查询。我的意思是字段的内容包含指定的子字符串。我有一个包含如下字段的文档:

name: n
tag: t

我试过了:

/_search -d '
{
"query": {
"match": {
"name": "n",
"tag": "t"
}
}
}

但是查询会导致以下错误:

[ match ]以简化形式解析的查询,带有直接字段名,但 包含了比字段名更多的选项,可以使用它的 “选项”表单,带有“查询”元素?

在弹性搜索中有办法做到这一点吗?

111686 次浏览

You need two match queries enclosed in a bool/must query, like this:

{
"query": {
"bool": {
"must": [
{
"match": {
"name": "n"
}
},
{
"match": {
"tag": "t"
}
}
]
}
}
}