小编mlo*_*iro的帖子

通过查询更新插入

我正在尝试创建或更新一个我没有 ID 的文档。所以我目前正在做的是搜索/获取现有的(或不存在的)文档,更新它并将其推回,它正在工作。

但我想一次性完成这一切。

我读过有关通过查询更新的信息,它看起来不适用于这种情况。我也尝试过使用脚本,但只找到了更新参考(所以我需要ID)。

不确定这在 ES 上是否可行。

非常感谢任何帮助/提示。

谢谢


更多信息:

就我而言,我与 ID 没有直接关系,这就是我打算通过查询更新的原因

我的文档很简单,如下所示:

{
  "text": "some text",
  "type": "a real type",
  "occurences": 2
}
Run Code Online (Sandbox Code Playgroud)

所以我必须通过文本键和键入键来匹配它。如果不存在则添加一个新文档(出现次数为1),如果找到则更新出现次数更新为 3。

根据 的文档update_by_query,应该可以执行以下操作:

POST /test/type/_update_by_query?conflicts=proceed
{
  "query": {
    "bool": {
      "must": [
         {"match_phrase": {"text": "some text"}},
         {"match_phrase": {"type": "a real type"}}
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何离开这里。

elasticsearch

5
推荐指数
1
解决办法
4813
查看次数

标签 统计

elasticsearch ×1