1
badttt 2017-09-21 19:06:15 +08:00
目测 query 写错了。你的 age 数据类型是 text 吧?
|
2
badttt 2017-09-21 19:08:54 +08:00
如果是 text 只能这样写
"query": { "bool": { "must": [ { "term": { "family.age.keyword": "45" } } ] } } |
3
oaix 2017-09-22 10:35:52 +08:00
由于你的文档是一个个 family, 所以匹配条件匹配到的并不是 45 岁的人, 而是包含 45 岁的人的 family, 再对这些家庭做聚合, 自然会包含其他年龄的 bucket.
有两个方法: 1. 按照目前的聚合方法, terms 聚合的 size 大一点, 程序选择 45 岁的 bucket. 2. 把每个人单独索引(可以利用 nested 类型), 查询那个索引. |