ElasticSearch查询嵌套对象不返回结果

时间:2017-09-10 00:56:41

标签: elasticsearch

我将此对象存储为

{
  "_index": "sessions_user_dev",
  "_type": "user",
  "_id": "322",
  "_version": 1,
  "_source": {
    "id": 322,
    "createdAt":        "2015-07-09T00:12:45+00:00",
    "firstName": "Amy",
    "lastName": "John",
    "openLocations": [
    {
      "id": 4,
      "code": "QLD",
      "label": "Queensland",
      "country": "AU"
    }
    ]
  }  
}

我想为openLocations设置一个术语,这是我的代码

{
    "query": {
    "term": {
        "user.openLocations.code": {
        "value": "QLD"
        }
        }
    }
}

但它总是返回零结果。我也尝试将字段更改为openLocations.code而没有用户面前但仍然没有运气。还尝试过:

{
    "query": {
        "bool": {
        "filter": {
        "bool": {
        "must": [
            {
                "term": {
                "openLocations.code": "QLD"
            }
        }
        ]
        }
        }
    }
    }
}

但仍然没有结果。尝试使用嵌套查询,但总是说[嵌套]无法在路径[user.openLocations]下找到嵌套对象。

我的Elasticsearch 5.4

提前谢谢

1 个答案:

答案 0 :(得分:0)

openLocations.code的映射是什么?如果要使用术语查询,则不应对其进行分析,因为此类查询将从索引中查找确切的值。