ElasticSearch Filtered Subdocument Count

时间:2014-05-19 21:42:05

标签: elasticsearch

我想计算一个日期范围内有两次以上会话的设备数量。

以下面的弹性搜索文档和子文档数组为例:

{
  "_index": "device",
  "_type": "device_type",
  "_id": "5ee1a8a2fde077a42e144a1425b6d501",
  "_score": 1,
  "_source": {
    "sessions": [
      {
        "sessionIdentifier": "bfa369ca-2ed7-4ccd-adc6-3cc0768e6264",
        "sessionStartTime": "1399672448000"
      },
      {
        "sessionIdentifier": "22886451-5b0d-4c25-9dac-38a7f4596f67",
        "sessionStartTime": "1399672449000"
      },
      {
        "sessionIdentifier": "adab71cf-1d32-444c-8931-4783b8813f74",
        "sessionStartTime": "1399672500000"
      }
    ],
    "numSessions": 3,
    "deviceIdentifier": "5ee1a8a2fde077a42e144a1425b6d501"
  }
}

日期范围的“点击”,例如:

  1. 1399672448000< = date< = 1399672500000(3次)
  2. 1399672448000< = date< = 1399672449000(2个会话)
  3. 和日期范围的“未命中”,例如:

    1. 1399672448000< = date< 1399672449000(1届)
    2. 是否有一种高效的方法可以使用弹性搜索来完成对任意大日期范围的查询?我不反对进一步对数据进行非规范化或任何其他建议。

0 个答案:

没有答案