当前位置: 首页 > 知识库问答 >
问题:

在elasticsearch中更新过滤的文档

盖翰池
2023-03-14

我想知道是否有办法在过滤掉elasticsearch文档后更新它们。

假设我有一个包含以下文档的用户集合:

[
  { "name":"u1","age":23},
  { "name":"u2","age":31},
  { "name":"u3","age":27},
  { "name":"u4","age":33}
]

现在我需要做的是更新所有30岁以上用户的名字。查看大量文档并在谷歌上搜索数小时,包括以下文档http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/_updating_documents.html

我找不到办法。因此,如果我们查看文档,我们会提供文档的id,因此它不符合我的需要。有没有办法在Elasticsearch中做这类事情?

共有1个答案

詹弘毅
2023-03-14

从您提供的链接:

请注意,在撰写本文时,一次只能对单个文档执行更新。将来,Elasticsearch将提供在给定查询条件(如SQLUPDATE-WHERE语句)的情况下更新多个文档的能力。

所以,目前不支持。但是你可以考虑看看这个插件:https://github.com/yakaz/elasticsearch-action-updatebyquery/.

 类似资料:
  • 问题内容: 我正在尝试了解如何在Elasticsearch中更新索引文档。我不明白它是如何工作的?什么是该API指的是在做什么?假设您有一个带有嵌套文档的文档,您需要做什么来更新它? 删除文档然后索引“已更新”版本与普通更新之间有什么区别? 问题答案: 更新请求从Elasticsearch检索源,对其进行修改并将其索引回Elasticsearch。如果您已经具有使用更新的文档副本,则毫无意义。仅索

  • 问题内容: 我有一个类似下面的查询, 但是由于我的ID过滤器,我的构面未过滤。我得到了所有方面,但我希望通过上面的ID过滤器对其进行过滤。你有什么想法 ? 问题答案: 尽管您的工作可行,但更干净的解决方案是使用过滤查询。 http://www.elasticsearch.org/guide/reference/query-dsl/filtered- query/ 允许您使用原始查询+一些任意过滤器

  • 问题内容: 该代码按预期工作。但是,我不想更新第三个国家作为另一个文档,而是要更新第一个文档。 这样,文档ID 1将有3个国家:印度,中国和巴基斯坦。我想我需要使用doc_as_upsert参数更新API。但是我不确定如何编写JSON。 问题答案: 您可以使用update API 进行脚本更新: 更新 如果要在批量查询中使用它,也可以

  • 问题内容: 我已将代码移植到NEST 2.0和Elasticsearch 2.0 我需要找到一种方法来更新已经存储在ES2中的文档 我正在使用部分对象技术: 如何使用NEST2做同样的事情? 问题答案: 您传递文档ID的方式有些变化。 今天看起来像: 要么 希望能帮助到你。

  • 如何在执行查询前过滤ElasticSearch2.2中的文档。我引用了这个页面,但仍然无法框出正确的查询。 https://www.elastic.co/guide/en/elasticsearch/reference/2.2/query-filter-context.html 这就是我想做的…我有很多应该从句,每个有2个必须从句。WOLLE子句中的任何一个都应该匹配以检索文档。我只包括了一个sh

  • 问题内容: 我正在尝试搜索日期范围内的日期范围内的所有项目,但失败(不返回任何结果) 查询: 映射: 结果是: 通过一个带数字值的整数字段(“ cards”)的范围过滤的同一查询工作正常。将日期更改为非常早的开始(1900-01-01 00:00:00)也不会显示任何结果。 我究竟做错了什么? 顺便说一句,我知道我在映射中启用了_timestamp,但这不是我要过滤的字段。 问题答案: 似乎对我来