elasticsearch UpdateRequest 中的 Where 子句
Where clause in elasticsearch UpdateRequest
我有一个 elasticsearch 索引,其中的 id 是自动生成的。当需要更新任何文档时,我必须首先搜索文档(使用其他参数)以获取 ID,然后在更新请求中使用此 ID。
有没有一种方法可以在更新请求本身中提供 where 子句?
没有对此的直接支持。
但是有一个社区驱动的插件可以用于它。
此插件可以根据搜索条件更新文档。
你可以在这里找到它 - https://github.com/yakaz/elasticsearch-action-updatebyquery
您可以使用 UpdateRequest
的脚本功能。可以使用 if 语句提供 where 条件。
示例:
updateRequest.script(new Script(ScriptType.INLINE, "painless",
"if (ctx._source.userName== 'XXX') {ctx._source.age= '21'}",Collections.emptyMap()));
我有一个 elasticsearch 索引,其中的 id 是自动生成的。当需要更新任何文档时,我必须首先搜索文档(使用其他参数)以获取 ID,然后在更新请求中使用此 ID。
有没有一种方法可以在更新请求本身中提供 where 子句?
没有对此的直接支持。 但是有一个社区驱动的插件可以用于它。 此插件可以根据搜索条件更新文档。
你可以在这里找到它 - https://github.com/yakaz/elasticsearch-action-updatebyquery
您可以使用 UpdateRequest
的脚本功能。可以使用 if 语句提供 where 条件。
示例:
updateRequest.script(new Script(ScriptType.INLINE, "painless",
"if (ctx._source.userName== 'XXX') {ctx._source.age= '21'}",Collections.emptyMap()));