【问题标题】:Nested Array Object Elastic Search嵌套数组对象弹性搜索
【发布时间】:2018-08-23 01:27:45
【问题描述】:

过滤具有重复 id 的嵌套数组对象

具有嵌套的 mailOpens 对象数组的不同成员。

必须解决这个问题: 拥有 >3 条不同 mailOpens.mailingId 记录的用户列表

{
  "_index": "members",
  "_type": "doc",
  "_id": "1234567",
  "_score": 2,
  "_source": {
    "mailOpens": [
      {
        "created": "04/26/2017",
        "mailingId": 1
      },
      {
        "created": "04/26/2017",
        "mailingId": 1
      },
      {
        "created": "07/14/2017",
        "mailingId": 2
      },
      {
        "created": "07/14/2017",
        "mailingId": 2
      },
      {
        "created": "07/14/2017",
        "mailingId": 3
      },
      {
        "created": "07/14/2017",
        "mailingId": 3
      },
      {
        "created": "07/14/2017",
        "mailingId": 4
      },
      {
        "created": "07/14/2017",
        "mailingId": 4
      }
    ]
  }
}

对于所有具有不同 mailingId 的成员索引,输出应该是这样的:

{
  "_index": "members",
  "_type": "doc",
  "_id": "1234567",
  "_score": 2,
  "_source": {
    "mailOpens": [
      {
        "created": "04/26/2017",
        "mailingId": 1
      },
      {
        "created": "07/14/2017",
        "mailingId": 2
      },
      {
        "created": "07/14/2017",
        "mailingId": 3
      },
      {
        "created": "07/14/2017",
        "mailingId": 4
      }
    ]
  }
}

【问题讨论】:

    标签: elasticsearch kibana elastic-stack


    【解决方案1】:

    我相信 ElasticSearch 没有这个功能。

    根据您的预期响应,您要做的是从特定文档中过滤数组的结果,而不是过滤整个集群。我认为您需要在收到 Elastic 的回复后执行此操作。最好,您应该改为在索引时删除此重复项。

    您最多可以尝试聚合以获取计数

    GET test/doc/_search
    {
      "query": {
        "match_all": {}
      },
      "aggs": {
        "distint_count": {
          "cardinality": {
            "field": "mailOpens.mailingId"
          }
        }
      }
    }
    
    
    
    
     "aggregations": {
        "distint_count": {
          "value": 4
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-07
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多