从elasticsearch> 2开始,没有_timestamp
字段。我们必须显式填充created_on
和updated_on
我知道填充这些字段的一种方法是使用uid
(假设使用某些项目属性在客户端生成的uid
)中要填充的检查项目已经存在于数据库中。如果数据库中存在该项,请更新除created_on
以外的所有字段。如果item不存在,请在数据库中创建与item和created_on
等于当前时间的条目。
我的问题是:
*每次创建/更新冗余时都不会检查??
*有没有更好的方法可以在客户端实现created_on
和updated_on
逻辑而没有冗余(无需查询elasticsearch)?
答案 0 :(得分:0)
为此,使用“中间件”是避免在客户端中包含这种逻辑的好方法,一旦更改设计,就需要在每个客户端实现上进行更改,因此,我认为这是一个好用例doc中有一个示例。
访问提取元数据字段: 除了元数据字段和源字段之外,摄取还将摄取元数据添加到它处理的文档中。这些元数据属性可在_ingest键下访问。当前摄取将摄取时间戳添加到摄取元数据的_ingest.timestamp键下。摄取时间戳记是Elasticsearch收到索引或批量请求以预处理文档的时间。
如果您需要更智能的中间件,请注意Script Processor,它允许在提取管道中执行内联和存储的脚本。