更新 :已添加
我想对我的ElasticSearch集群执行唯一计数。该集群包含约5000万条记录。
我尝试了以下方法:
在本节中提到:
预计算哈希通常仅在非常大和/或高基数的字段上有用,因为它可以节省CPU和内存。
在本节中提到:
除非您将Elasticsearch配置为使用doc_values作为字段数据格式,否则使用聚合和构面对堆空间的要求 非常 高。
"my_prop": {
"index": "not_analyzed",
"fielddata": {
"format": "doc_values"
},
"doc_values": true,
"type": "string",
"fields": {
"hash": {
"type": "murmur3"
}
}
}
当我在Kibana的my_prop.hash上使用唯一计数时,收到以下错误:
Data too large, data for [my_prop.hash] would be larger than limit
ElasticSearch的堆大小为2g。对于具有400万条记录的单个索引,上述操作也将失败。
由Kibana产生:http://pastebin.com/hf1yNLhE
http://pastebin.com/BFTYUsVg
该错误表明您没有足够的内存(更具体地,用于的内存fielddata
)来存储来自中的所有值hash
,因此您需要从堆中取出它们并将它们放在磁盘上,这意味着使用doc_values
。
既然你已经在使用doc_values
了my_prop
,我建议做同样的my_prop.hash
(而且,不,从主字段中的设置不是由子域继承)"hash": { "type": "murmur3", "index" : "no", "doc_values" : true }
。
问题内容: 我用kibana-4 我这样登录 我想绘制这样的结果的饼图(目标计数)。 这意味着每个用户只能计数一个。我能怎么做?我可以只使用Kibana的可视化选项吗?或添加一些elasticsearch输入? 问题答案: 在字段中选择聚合-> 字段 在字段中选择聚合-> 字段
问题内容: 我有以下json 我想计算重复的名字 重复计数3 不可重复的名字计数 非重复计数2 我试图计算存储桶的数量,但似乎计算所有存储桶是重复的还是非重复的 问题答案: 好吧,我在这里利用了几种聚合。以下是我使用过的列表。列表的顺序是聚合的执行顺序。 对于重复 术语汇总 统计数据桶汇总 对于非重复 术语汇总 桶选择器 (作为子集合) 总和桶选择器 汇总查询: 响应 注意,在上面的响应中,我们有
使用web3.utils.sha3()方法计算给定字符串的sha3哈希值。 注意,如果要模拟solidity中的sha3,请使用soliditySha3函数。 调用: web3.utils.sha3(string) web3.utils.keccak256(string) // ALIAS 参数: string - String: 要计算sha3哈希值的字符串 返回值: String: 计算结果
我想向用户展示他们的客户端工具也可能生成的散列,因此我一直在比较在线散列工具。我的问题是关于它们的散列形式,因为奇怪的是,它们是不同的。 在快速搜索之后,我用5进行了测试: http://www.convertstring.com/hash/sha256 http://www.freeformatter.com/sha256-generator.html#ad-output http://onli
我刚刚讨论了散列码的概念,遇到了一行:
问题内容: 我有以下形式的数据: 组内的非空值始终相同。我想对每个组(如果存在)的非空值进行一次计数,然后找到每个值的总数。 我目前正在以以下方式(笨拙和低效)进行此操作: 我敢肯定,有一种方法可以更干净地执行此操作,而无需使用循环,但是我似乎无法解决问题。任何帮助将非常感激。 问题答案: 我认为您可以使用: 的另一种解决方案,然后创建new by ,将其重塑为by和last :