elasticsearch请求数组中的元素

时间:2014-08-04 12:13:41

标签: json elasticsearch request

我的弹性搜索索引的文档如下:

{
   ...
   purchase:{
     zones: ["FR", "GB"]
     ...
   }
   ...
}

我使用这种查询来查找带有购买区域的文件到GB

{
    "query": {
        "filtered": {
            "query": {
                "match_all": {}
            },
            "filter": {
                "term": {
                    "purchase.zones": "GB"
                }
            }
        }
    }
}

但有了它,我没有结果...... 我想执行像php in_array(" GB",purchase.zones)中的查询。

任何帮助都会非常有帮助。

1 个答案:

答案 0 :(得分:1)

如果您的“购买”字段是嵌套类型,则必须使用嵌套查询来访问“区域”。

{
    "nested" : {
        "path" : "obj1",
        "score_mode" : "avg",
        "query" : {
            "bool" : {
                "must" : [
                    {
                        "match" : {"obj1.name" : "blue"}
                    },
                    {
                        "range" : {"obj1.count" : {"gt" : 5}}
                    }
                ]
            }
        }
    }
}

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-nested-query.html