solrcloud jsonfacet分组聚合 unique计数不准确

Posted 西红柿炒荷花

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solrcloud jsonfacet分组聚合 unique计数不准确相关的知识,希望对你有一定的参考价值。

jsonfacet分组聚合查询

unique、hll函数问题

对不同的值进行估算,并非准确的值,

优点:节省内存消耗,用分组算法对不同的值count进行估算

缺点:无法准确统计count(distinct key)

区别:

unique给定字段的惟一值的数量。超过100个值,它不会产生精确的估计,惟一的facet函数是Solr最快速的实现来计算不同值的数量

hll通过超log-log算法的分布式基数估计

记录:

json.facet={fz:{type:terms,field:khid,refine:true,overrequest:100000,limit:10,facet:{summy:"sum(my)",sumcnt:"hll(posid)"}}}&fq=month:(201808)

json.facet={fz:{type:terms,field:khid,refine:true,overrequest:100000,limit:10,facet:{summy:"sum(my)",sumcnt:"unique(posid)"}}}&fq=month:(201808)

 

 

 

计算出的sumcnt是估算,而不是精确计数

hll函数比unqie函数估算的准确些,但都不精确

解决方法:

1、用stats语法对count(distinct)统计

stats=true&stats.field={!countDistinct=true}posid&fq=month:(201808)

精确统计,对所有节点的数据进行全面统计,耗时高,吃内存

 

 

2、dv函数解决

&indent=on&json.facet={fz:{terms:{field:posid,method:dv,limit:1000000}}}

 

以上是关于solrcloud jsonfacet分组聚合 unique计数不准确的主要内容,如果未能解决你的问题,请参考以下文章

solrcloud Recovery原理及无法选举分片leader

solrcloud没有集群leader的问题

获取熊猫 groupby 对象中多列的最大聚合

Django聚合函数与分组查询

Django 09-1模型层 查询(分组聚合)

数据分析—Pandas 中的分组聚合Groupby 高阶操作