测试环境:ES 7.X
数据去重一般会遇到两类需求:一个是获得聚类结果,即标题+数量;另一类是获得去重后的标题。下面对比SQL分析在ES中如何做这两类操作。
聚类SQL实现语句
select <列1>,count(<列2>) from <表> group by <列1>;
Elasticsearch类似功能的使用aggs实现方式:
_search
{
"aggs": {
"<自定义名称>": {
"cardinality": {
"field": "<字段>"
}
}
}
}
结果在response[‘aggregations’][‘methods’][‘buckets’]中。
获取去重后的结果SQL实现
select distinct <列> from <表>;
Elasticsearch类似功能使用折叠collapse实现方式(5.3+支持该功能,与query同级。):
_search
{
"query": {
"match_all":{}
},
"collapse": {
"field": "<字段>"
}
}
结果在response[“hits”][“hits”]中。