【发布时间】:2018-01-19 11:05:36
【问题描述】:
我在使用 elasticsearch 查询时遇到了一些问题。 (我使用弹性搜索 5)。我想结合 must bool 查询和 should 以创建符合此条件的查询:
Get users which match (city = x) AND (school = y) AND (age = 12) AND (team = a OR b)
我尝试了很多查询,但仍然遇到查询格式错误的异常。
{
"query": {
"bool": {
"must" : [
{
"match": {
"city": "x"
}
},
{
"match" : {
"school" : "y"
}
},
{
"match" : {
"age" : 12
},
"bool": {
"should": [
{"term": {"team": "A"}},
{"term": {"team": "B"}}
]
}
}
]
}
}
}
我希望有人可以帮助我:D
感谢您的帮助
【问题讨论】:
-
好的。为什么您的查询不起作用?
-
当您复制粘贴查询时,您可能想遗漏一些内容,但您忘记为
bool语句添加花括号。或者这是您在查询中的错误。 -
我收到了这个错误:{ "error": { "root_cause": [ { "type": "parsing_exception", "reason": "[match] 格式错误的查询,预期 [END_OBJECT] 但发现[FIELD_NAME]", "line": 19, "col": 11 } ], "type": "parsing_exception", "reason": "[match] 查询格式错误,应为 [END_OBJECT] 但找到 [FIELD_NAME]", "行”:19,“列”:11 },“状态”:400 }
-
如果我把我的 bool / should 放在花括号内它会返回一个“Bad String”错误(我使用 Kibana 来测试我的查询)
标签: elasticsearch elasticsearch-5