我想找到一个名称的文档,其中包含' Bob'并且有一个位置,位于' paducah'或者'士麦那'。
这就是我现在所拥有的:
query: {
bool: {
must: [
{ match: { name: 'bob' } },
{ match: { location: ['paducah', 'smyrna'] } }
],
},
},
我知道问题出在位置数组中,因为如果我将其更改为没有数组的单个元素,则查询工作正常。
This is the closest answer i could find
它没有用,我收到以下错误:
[term]格式错误的查询,预计[END_OBJECT]但找到[FIELD_NAME]
答案 0 :(得分:2)
您可以尝试此查询:
{
"query": {
"bool": {
"must": [
{ "match": { "name": "bob" } }
],
"should": [
{ "match": { "location": "paducah" }},
{ "match": { "location": "smyrna" }}
],
"minimum_should_match": 1
}
}
}
答案 1 :(得分:0)
以下内容如何:
{
"query": {
"bool": {
"must": [
{ "term": { "name": "bob" },
"bool": {
"should": [
{"term": {"location": "paducah"}},
{"term": {"location": "smyrna"}}
]
}
}
]
}
}
}