我有一个users
类型的索引user
。映射是动态的。现在user
有一个以下结构:
"user": {
"nested": {
"one":51
},
"other": {
"two":"hi!"
},
"three":false
}
我需要找到other.two
字段值为hi
或three
字段值为false
的所有用户。例如。具有other.two
的用户必须包含hi
值,three
字段的值false
。如何从弹性搜索中选择它?
我试过了:
GET /users/user/_search
{"query": {"match": {"other.two": "hi"}}}
为我返回一个用户,但是
GET /users/user/_search
{"query": {"match": {"other.two": "hi", "three":false}}}
给我一个SearchPhaseExecutionException
。
如何组合多个字段和值进行搜索?
答案 0 :(得分:2)
答案 1 :(得分:2)
正如上面提到的@rvheddeg,以下是适用于我的查询:
{
"query": {
"bool": {
"should": [
{ "match": { "other.two": "hi" }},
{ "match": { "three": false }}
],
"minimum_should_match": 1
}
}
}