【问题标题】:Updating only changed fields in elastic search仅更新弹性搜索中的更改字段
【发布时间】:2018-01-30 13:39:16
【问题描述】:

我们使用弹性搜索作为缓存存储数据。
有一个工作每 6 小时更新一次弹性搜索,它用新数据替换完整的弹性搜索。
现在我们要实现的是,弹性搜索数据应该只更新更新的索引,新添加的索引不应该触及没有变化的索引。
是否可以使用弹性搜索来做到这一点?

请在这里帮忙。

【问题讨论】:

  • 奇怪!用新数据替换完整的弹性搜索是什么意思?
  • 基本上是刷新旧数据并添加新数据。
  • 只添加而不刷新旧的
  • 更新需要自己生成_id或者自己控制
  • 实际上我是弹性搜索的新手,所以我们设置了刷新周期 dmso 每 24 小时数据刷新一次。我们设定的时间,所以增加时间并继续增加它可能是解决方案??

标签: elasticsearch elasticsearch-plugin


【解决方案1】:

通过将更新更改插入队列(可以是 MySQL 表或其他内容)来管理您的更新更改,您也必须管理文档的 ID。

从队列中获取数据并使用具有 upsert 功能的弹性更新 API。

POST /<indexName>/<type>/<documentID>/_update
{
  "doc" :
      {
         name: "Dennis",
         weight: "70"
      },
  "doc_as_upset" : true
}

如果文档不存在,则更新文档或创建新文档(在 MySQL 中提醒 REPLACE)。

【讨论】:

    猜你喜欢
    • 2013-11-03
    • 1970-01-01
    • 2016-02-02
    • 2015-01-16
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多