如何在elasticsearch中找到与字段和值匹配的所有文档?

时间:2015-04-03 06:50:34

标签: search elasticsearch

我有一个users类型的索引user。映射是动态的。现在user有一个以下结构:

"user": {
        "nested": {
            "one":51
        },
        "other": {
            "two":"hi!"
        },
        "three":false
    }

我需要找到other.two字段值为hithree字段值为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

如何组合多个字段和值进行搜索?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

正如上面提到的@rvheddeg,以下是适用于我的查询:

{
"query": {
    "bool": {
        "should": [
                { "match": { "other.two":  "hi" }},
                { "match": { "three": false  }}
            ],
            "minimum_should_match": 1
        }
    }
}