如何在Elasticsearch中处理新的(上次运行后的索引)数据?

问题描述 投票:9回答:3

有没有办法获得弹性搜索文档的日期和时间?

我正在通过spark运行es查询,并且不希望查看我已经处理过的所有文档。相反,我想阅读上次程序运行和现在之间摄取的唯一文档。

最有效的方法是什么?

我看过了;

  • 如果已经通过哪个分析查看,则更新以添加具有布尔数组的字段。否定是等待更新发生。
  • 每个时间帧方法的索引,它将按小时将当前索引分解为较小的索引。我看到的负数是打开文件描述符的数量。
  • ??

Elasticsearch版本5.6

elasticsearch
3个回答
4
投票

我在elasticsearch discussion board上发布了这个问题,看来使用ingest pipeline是最好的选择。


2
投票

我正在通过spark运行es查询,并且不希望查看我已经处理过的所有文档。相反,我想阅读上次程序运行和现在之间摄取的唯一文档。

解决方法可能是:

使用Logstash将数据插入Elasticsearch时,Logstash会在文档中附加@timestamp键,该键表示创建文档的时间(以UTC为单位),或者我们可以使用ingest pipline

之后我们可以根据时间戳查询。

有关详细信息,请查看:

  1. Mapping changes
  2. There is no way to ask ES to insert a timestamp at index time

1
投票

Elasticsearch没有这样的功能。

您需要手动保存每个文档日期。在这种情况下,您将能够按日期范围进行搜索。

© www.soinside.com 2019 - 2024. All rights reserved.