es聚合被分词的现象一般是6.x版本的(以前的版本没用过)
es6.x后对于text类型字段需要聚合查询(类似group by)对数据进行统计分析,需要设置fielddata为true 和fields字段才能进行聚合操作。
例:text类型字段进行聚合查询(count(*) group by) 摘自:https://www.cnblogs.com/dxf813/p/8447467.html
需求:对机构字段既可以进行模糊查询,又可以按照字段全名进行聚合统计
实现:
-设置字段参数
{"institution": {"type": "text","analyzer": "ik_max_word","search_analyzer": "ik_max_word","fielddata": true,"fields": {"raw": {"type": "keyword"}}}}
如果不设置keyword索引在聚合时将会使用已分解后的词。例如:想用“国泰君安”聚合,结果使用“国泰”,“君安”聚合
-查询时aggs参数
{"query": {"range": {"time": {"gte": "2018-02-01"}}},"aggs": {"institution_count": {"terms": {"field": "institution.raw"},"aggs": {}}}}

