同时追加/插入Elasticsearch

时间:2017-09-11 18:25:54

标签: elasticsearch go

使用elasticsearch 5.x和Elastic package 5.x

有没有办法处理弹性搜索中文档中的同时插入或附加到数组字段?我有一个数组字段,可能会附加多个项目;然而,并非总是如此。假设我正在设计论坛/评论空间。我有一个帖子文档,“喜欢”或收藏夹由用户名数组表示。如何处理多个用户附加到数组的情况,而不会冒用户覆盖彼此的风险?

1 个答案:

答案 0 :(得分:0)

没有像使用其余端点将条目添加到数组中的“附加”之类的机制。在Elasticsearch中向项目添加项目的唯一方法是:

  1. 获取文档
  2. 在内存中添加您想要的元素
  3. 放回整个阵列
  4. 您拥有的另一个选项是脚本api。这将允许您在ES集群本身上执行上面的“附加”语义。

    https://www.elastic.co/guide/en/elasticsearch/guide/current/partial-updates.html#_using_scripts_to_make_partial_updates

    Elasticsearch还使用乐观锁定来确保如果多个进程同时尝试“修补”该字段,则只有1个将获胜,而其他人将不得不再次检索该文档,并附加他们想要的内容。 / p>

    https://www.elastic.co/guide/en/elasticsearch/guide/current/optimistic-concurrency-control.html