Elasticsearch 5.3.x版本使用significant_text聚合报错如何解决?
问题根因
significant_text 聚合器是Elasticsearch 6.0版本才正式新增的功能,你使用的ELK 5.3.1版本没有内置该聚合能力,因此调用时会抛出未知聚合类型的报错。
适配5.3.1版本的解决方案
- 方案1:需求为统计和背景数据集存在显著差异的词项时,使用
significant_terms聚合替代
该聚合要求目标字段为keyword类型,若你的testId字段是text类型,需要提前为其配置keyword子字段,查询示例如下:
"aggs": { "keywords": { "significant_terms": { "field": "testId.keyword", "min_doc_count":1 } } }
- 方案2:仅需要普通词频统计时,直接使用
terms聚合即可
同样要求目标字段为keyword类型,查询示例如下:
"aggs": { "keywords": { "terms": { "field": "testId.keyword", "min_doc_count":1, "size": 100 } } }
- 方案3:如果必须使用
significant_text的专属能力,将ELK集群版本升级到6.0及以上即可,原查询语句无需修改即可正常运行。
内容的提问来源于stack exchange,提问作者Manjusha S
相关产品推荐
相关产品推荐

