问题标签 [elasticsearch-bulk-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
43846 浏览

elasticsearch - 如何更新 ElasticSearch 中的多个项目?

假设我tag在 ElasticSearch 索引中有一个类型,具有以下映射:

每个条目都是一个标签,以及该标签的别名数组。这是一个示例项目:

有时,我想添加新的标签词及其别名,并为现有的标签词添加新的别名。

添加带有别名的新标签词很容易,它只是一个新文档。但是,如何以理智的方式向现有标签词添加新别名?

我知道我可以只搜索标签词,获取其文档,搜索以查看别名是否已存在于别名数组中,如果不添加,则保存。但是 - 这听起来不是一个好的解决方案。

有没有办法进行批量更新?

0 投票
7 回答
31801 浏览

elasticsearch - ElasticSearch 中理想的散装尺寸公式是什么?

我相信应该有一个公式来计算 ElasticSearch 中的批量索引大小。可能以下是这样一个公式的变量。

  • 节点数
  • 分片数/索引
  • 文档大小
  • 内存
  • 磁盘写入速度
  • 局域网速度

我想知道是否有人知道或使用数学公式。如果没有,人们如何决定他们的体积大小?通过反复试验?

0 投票
5 回答
94842 浏览

python - 如何使用 Bulk API 通过 Python 将关键字存储在 ES 中

我必须在 ElasticSearch 中存储一些消息,并与我的 python 程序集成。现在我尝试存储的消息是:

这意味着如果我有 10 条消息,那么我必须重复我的代码 10 次。所以我想做的是尝试制作一个脚本文件或批处理文件。我检查了ElasticSearch Guide,可以使用 BULK API。格式应如下所示:

我所做的是:

我还使用 curl 工具来存储文档。

现在我想使用我的 Python 代码将文件存储到 Elastic Search。

0 投票
1 回答
4179 浏览

elasticsearch - 从 Java 设置生存时间 (TTL) - 请求示例

编辑: 这基本上是我想做的,仅在 Java 中

使用 ElasticSearch,我们将文档添加到索引中,绕过 IndexRequest 项到 BulkRequestBuilder。

我希望在经过一段时间后从索引中删除文档(生存时间/ttl)

这可以通过为索引设置默认值或基于每个文档来完成。这两种方法对我来说都很好

下面的代码是尝试按文档执行此操作。这没用。我认为这是因为没有为索引启用 TTL。要么向我展示我需要添加哪些 Java 代码以启用 TTL,以便下面的代码正常工作,要么向我展示启用 TTL 的不同代码 + 为 Java 中的索引设置默认 TTL 值我知道如何从 REST API 执行此操作,但我需要如果可能的话,从 Java 代码中完成。

后来我通过轮询这个方法来检查我的单元测试,但是文档数量永远不会减少。

0 投票
2 回答
14194 浏览

elasticsearch - 如何使用 Elasticsearch 处理多个更新/删除?

我需要更新或删除几个文档。

当我更新时,我这样做:

  1. 我首先搜索文档,为返回的结果设置更大的限制(比如说,大小:10000)。
  2. 对于每个返回的文档,我都会修改某些值。
  3. 我对弹性搜索整个修改后的列表(批量索引)感到不满。

此操作一直进行到第 1 点不再返回结果。

当我删除时,我这样做:

  1. 我首先搜索文档,为返回的结果设置更大的限制(比如说,大小:10000)
  2. 我删除发送到 elasticsearch _id 文档的每个找到的文档(10000 个请求)

重复此操作,直到点 1 不再返回结果。

这是进行更新的正确方法吗?

当我删除时,有没有办法可以发送多个 id 一次删除多个文档?

0 投票
1 回答
10014 浏览

json - 将 JSON 对象作为文档批量加载到 elasticsearch

有没有办法在不修改原始内容的情况下将下面的数据批量加载到elasticsearch中?我将每个对象发布为单个文档。目前我正在使用 Python 解析单个对象并一次发布一个。

在生产环境中从 REST 服务器到 elasticsearch 进行此类处理需要花费大量时间。

是否有一个 POST/curl 命令可以一次上传上面的文件,然后 elasticsearch 解析它并将每个对象变成自己的文档?

我们正在使用弹性搜索 1.3.2

0 投票
2 回答
11133 浏览

python - elasticsearch python 批量 api (elasticsearch-py)

我对 py-elasticsearch bulk @Diolor 解决方案的工作感到困惑 https://stackoverflow.com/questions/20288770/how-to-use-bulk-api-to-store-the-keywords-in-es-by-using -python,但我想使用普通的 es.bulk()

我的代码:

错误是:

为 POST 调用生成的 url 是

/logstash-test/test/_bulk

POST 正文是:

{"host":"logsqa","path":"/logs","message":"test test","@timestamp":"2014-10-02T10:11:25.980256","tags":["多行","mydate_0.005"]}

所以我用手做了che curl:这个curl不起作用:

所以错误部分是好的,但我确实希望 elasticsearch.bulk() 能够正确管理输入参数。

pythonf函数是:

0 投票
4 回答
13801 浏览

python - 通过批量 API、扫描和滚动重新索引弹性搜索

我正在尝试重新索引我的弹性搜索设置,目前正在查看弹性搜索文档使用 Python API 的示例

不过,我有点困惑这一切是如何运作的。我能够从 Python API 获得滚动 ID:

现在我的问题是,这对我有什么用?知道滚动 ID 甚至能给我带来什么?文档说要使用“批量 API”,但我不知道 scoll_id 是如何影响这一点的,这有点令人困惑。

考虑到我正确获得了scroll_id,谁能给出一个简短的例子来说明我如何从这一点重新索引?

0 投票
1 回答
458 浏览

elasticsearch - 从一个elasticsearch集群的索引中获取所有文档,并在另一个elasticsearch集群中进行索引

我的目标是从 ES 集群的索引中获取所有文档,并将它们插入到另一个 ES 集群中,保持相同的元数据。

我查看了 mget API 来检索数据和 Bulk API 来插入它,但是这个 Bulk API 需要一个特殊的结构:

所以我的想法是在一个文件中检索我的 EScluster1 的数据并重新排列它以满足 Bulk API 的结构并将其索引到 EScluster2。

您是否看到更好和/或更快的方法?

0 投票
1 回答
114 浏览

javascript - ElasticSearch 删除批量项

我想删除某种类型的所有文档。

但这仅适用于 1.0 及更高版本:

我在 ES v1.4.x 上试过了,效果很好。当我在 ES v0.90.13 上运行时它失败了。任何帮助,将不胜感激。