Elasticsearch聚合查询使用.keyword后缀无返回结果问题
问题原因及解决说明
从你提供的索引映射可以看到,entity.Person字段的类型是keyword:
"Person": { "type": "keyword" }
在Elasticsearch中,.keyword后缀仅适用于text类型字段——当字段被定义为text时,Elasticsearch会自动创建一个同名的keyword子字段(用于精确匹配、排序或聚合),此时需要通过field.keyword来访问这个子字段。
但你的Person字段本身就是keyword类型,不存在entity.Person.keyword这个子字段,因此第二个查询无法找到对应字段,返回空结果。
第一个查询直接使用entity.Person(正确的keyword字段),所以能正常返回出现频率最高的Person值的聚合结果。
若你需要获取Person字段的高频值,直接使用第一个查询即可,无需添加.keyword后缀。
内容的提问来源于stack exchange,提问作者keramat
相关产品推荐
相关产品推荐

