elasticsearch - 计算elasticsearch中具有唯一*值*的文档的数量

标签 elasticsearch

假设我的索引包含以下格式的文档:

{
   "_id": "IDIDIDIDID"
   "IP": "xxx.xxx.xxx.xxx",
   "NetworkID": "foobar"
}

我想计算(IP, NetworkID)的唯一组合的数量。我知道如何(大约)对单个字段cardinality aggregation执行此操作。我不知道如何在多个 Realm 做到这一点。有没有一种方法可以直接使用Elasticsearch进行操作,还是唯一的方法就是脱机处理?

最佳答案

对您提到的基数聚合使用脚本:

{
  "aggs": {
    "counts": {
      "cardinality": {
        "script": "doc['IP'].value + ' ' + doc['NetworkID'].value"
      }
    }
  }
}

关于elasticsearch - 计算elasticsearch中具有唯一*值*的文档的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26543687/

相关文章:

java - hibernate 搜索: Indexed data with Ngram filter and while searching it gives incorrect result due to tokenizing while querying

amazon-web-services - 使用 logstash 将数据流式传输到 amazon elasticsearch?

elasticsearch - 使用恒定分数包装器的Elasticsearch bool 查询

elasticsearch - Filebeat-json.message_key的配置是什么?

solr - 应该使用哪种Lucene Analyzer进行韩语分析?

elasticsearch - Elasticsearch:按给定映射中的最大字段值过滤

logging - ELK - Logstash + Redis - 数据复制

java - Elasticsearch Spring boot 集成测试

elasticsearch - Logstash redis 配置没有将日志推送到 ES

linux - 运行 ElasticSearch。 Bash : ./bin/elasticsearch:权限被拒绝