愚者求师之过,智者从师之长。

除了Terms Agg之外,有没有低开销方法实现类似Group By的功能

Elasticsearch | 作者 martindu | 发布于2016年08月10日 | 阅读数:5854

假设有一堆文档,每个文档均包含一个分词的长文本字段text和一个不分词的标签字段tag。类似于:
 
"properties": {
"text": {
"index": "analyzed",
"type": "string"
},
"tag": {
"index": "not_analyzed",
"type": "string"
}
}
 
现在我比如在text字段上做一个搜索,取回包含“社区”的文档。然后我想统计在这个搜索条件之下,tag这个字段上有多少个distinct value。
 
我考虑过使用terms aggregation,但是如果tag字段下distinct value比较多(比如上千)的时候,我担心terms aggregation的开销会比较大。而且我不需要知道每个tag下的数量,只是需要知道一个总数。求各位大神指点!
已邀请:

medcl - 今晚打老虎。

赞同来自: martindu strglee

你是只需要group的总数是么,那可以试试cardinality啊

gh

赞同来自:

搜披露创始人吗

kingfs

赞同来自:

5之后字段折叠功能更方便groupBy啦

要回复问题请先登录注册