弹性搜索 - 通过排序

时间:2018-01-19 13:51:13

标签: sorting elasticsearch nested kibana

我们使用弹性搜索5.4。我们有一些嵌套事件相关数据的文档。在这些嵌套文档中,可能存在多个事件,事件类型不同。

让我们说一个关于一个人的嵌套文档可以存储类型为birthData,deathData等的数据。 我们希望按 [MONTH-DAY DESC],[YEAR ASC] 排序ES文档。

通过单一事件类型进行过滤和排序是件小事,但如果我想按多个事件日期排序并显示文档的次数与内部日期一样多,该怎么办? 由于我们有数百万个文档和多个事件类型,因此应用程序服务器上的结果操作将是不可行的

简短的例子:

{
        "id": "ID1",
        "fullName": "John Smith",
        "eventsData": [
          {
            "event_data_type": "BD",
            "event_date": "1971-12-30T00:00:00Z",
          },
          {
            "event_data_type": "DD",
            "event_date": "2013-02-11T00:00:00Z",
          }
        ]
    },
    {
        "id": "ID2",
        "fullName": "Jake Smith",
        "eventsData": [
          {
            "event_data_type": "BD",
            "event_date": "1965-02-02T00:00:00Z",
          },
          {
            "event_data_type": "DD",
            "event_date": "2011-12-30T00:00:00Z",
          }
        ]
    }

带有相关数据的打印结果将是:

   ID1, BD, 1971-12-30
   ID2, DD, 2011-12-30
   ID1, DD, 2013-02-11
   ID2, BD, 1965-02-02

因此,如果文档中包含 n 个事件,则会显示 n 次。

您能为此问题提供任何弹性搜索解决方案吗?我们应该使用什么功能?

0 个答案:

没有答案