1.先确定该索引该字段是否开启fielddata
curl -s -u username:password -XGET http://10.23.16.33:9200/gamelog-2022.06.14/doc/_mapping/ -H 'Content-Type:application/json'|jq .
2. 如果该字段fielddata为false,需要设置为true
#假设需设置的字段为message curl -s -u username:password -XPUT http://10.23.16.33:9200/gamelog-2022.06.14/doc/_mapping/ -H 'Content-Type:application/json' -d ' { "properties": { "message": { "type": "text", "fielddata": true } } }'|jq .
3. 查询该索引top10的值和数量
#test是查询名,随便取,size是top10,可以改为自己需要的, message.keyword 是查询的字段,表示不分词, 如果需要分词去掉.keyword即可 curl -s -u username:password -XGET http://10.23.16.33:9200/gamelog-2022.06.14/_search -H 'Content-Type:application/json' -d' { "aggs": { "test": { "terms": { "field": "message.keyword", "size": 10 } } } }'|jq .
gamelog-2022.06.14 为需要查询的索引(应该支持索引模式查询, 例如: gamelog-*), 另该查询为非精准查询,如果需要精准查询,请自行搜索如果提高查询精度