我正在尝试创建或更新一个我没有 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)
但我不知道如何离开这里。