在客户端上实现created_on和updated_on逻辑

时间:2018-07-15 17:27:59

标签: elasticsearch design-patterns logic

从elasticsearch> 2开始,没有_timestamp字段。我们必须显式填充created_onupdated_on

这样的时间字段

我知道填充这些字段的一种方法是使用uid(假设使用某些项目属性在客户端生成的uid)中要填充的检查项目已经存在于数据库中。如果数据库中存在该项,请更新除created_on以外的所有字段。如果item不存在,请在数据库中创建与item和created_on等于当前时间的条目。

我的问题是:
 *每次创建/更新冗余时都不会检查??
 *有没有更好的方法可以在客户端实现created_onupdated_on逻辑而没有冗余(无需查询elasticsearch)?

1 个答案:

答案 0 :(得分:0)

为此,使用“中间件”是避免在客户端中包含这种逻辑的好方法,一旦更改设计,就需要在每个客户端实现上进行更改,因此,我认为这是一个好用例doc中有一个示例。

  

访问提取元数据字段:   除了元数据字段和源字段之外,摄取还将摄取元数据添加到它处理的文档中。这些元数据属性可在_ingest键下访问。当前摄取将摄取时间戳添加到摄取元数据的_ingest.timestamp键下。摄取时间戳记是Elasticsearch收到索引或批量请求以预处理文档的时间。

如果您需要更智能的中间件,请注意Script Processor,它允许在提取管道中执行内联和存储的脚本。