我将此对象存储为
{
"_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
提前谢谢
答案 0 :(得分:0)
openLocations.code
的映射是什么?如果要使用术语查询,则不应对其进行分析,因为此类查询将从索引中查找确切的值。