问题标签 [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.
elasticsearch - 如何更新 ElasticSearch 中的多个项目?
假设我tag
在 ElasticSearch 索引中有一个类型,具有以下映射:
每个条目都是一个标签,以及该标签的别名数组。这是一个示例项目:
有时,我想添加新的标签词及其别名,并为现有的标签词添加新的别名。
添加带有别名的新标签词很容易,它只是一个新文档。但是,如何以理智的方式向现有标签词添加新别名?
我知道我可以只搜索标签词,获取其文档,搜索以查看别名是否已存在于别名数组中,如果不添加,则保存。但是 - 这听起来不是一个好的解决方案。
有没有办法进行批量更新?
elasticsearch - ElasticSearch 中理想的散装尺寸公式是什么?
我相信应该有一个公式来计算 ElasticSearch 中的批量索引大小。可能以下是这样一个公式的变量。
- 节点数
- 分片数/索引
- 文档大小
- 内存
- 磁盘写入速度
- 局域网速度
我想知道是否有人知道或使用数学公式。如果没有,人们如何决定他们的体积大小?通过反复试验?
python - 如何使用 Bulk API 通过 Python 将关键字存储在 ES 中
我必须在 ElasticSearch 中存储一些消息,并与我的 python 程序集成。现在我尝试存储的消息是:
这意味着如果我有 10 条消息,那么我必须重复我的代码 10 次。所以我想做的是尝试制作一个脚本文件或批处理文件。我检查了ElasticSearch Guide,可以使用 BULK API。格式应如下所示:
我所做的是:
我还使用 curl 工具来存储文档。
现在我想使用我的 Python 代码将文件存储到 Elastic Search。
elasticsearch - 从 Java 设置生存时间 (TTL) - 请求示例
使用 ElasticSearch,我们将文档添加到索引中,绕过 IndexRequest 项到 BulkRequestBuilder。
我希望在经过一段时间后从索引中删除文档(生存时间/ttl)
这可以通过为索引设置默认值或基于每个文档来完成。这两种方法对我来说都很好。
下面的代码是尝试按文档执行此操作。这没用。我认为这是因为没有为索引启用 TTL。要么向我展示我需要添加哪些 Java 代码以启用 TTL,以便下面的代码正常工作,要么向我展示启用 TTL 的不同代码 + 为 Java 中的索引设置默认 TTL 值我知道如何从 REST API 执行此操作,但我需要如果可能的话,从 Java 代码中完成。
后来我通过轮询这个方法来检查我的单元测试,但是文档数量永远不会减少。
elasticsearch - 如何使用 Elasticsearch 处理多个更新/删除?
我需要更新或删除几个文档。
当我更新时,我这样做:
- 我首先搜索文档,为返回的结果设置更大的限制(比如说,大小:10000)。
- 对于每个返回的文档,我都会修改某些值。
- 我对弹性搜索整个修改后的列表(批量索引)感到不满。
此操作一直进行到第 1 点不再返回结果。
当我删除时,我这样做:
- 我首先搜索文档,为返回的结果设置更大的限制(比如说,大小:10000)
- 我删除发送到 elasticsearch _id 文档的每个找到的文档(10000 个请求)
重复此操作,直到点 1 不再返回结果。
这是进行更新的正确方法吗?
当我删除时,有没有办法可以发送多个 id 一次删除多个文档?
json - 将 JSON 对象作为文档批量加载到 elasticsearch
有没有办法在不修改原始内容的情况下将下面的数据批量加载到elasticsearch中?我将每个对象发布为单个文档。目前我正在使用 Python 解析单个对象并一次发布一个。
在生产环境中从 REST 服务器到 elasticsearch 进行此类处理需要花费大量时间。
是否有一个 POST/curl 命令可以一次上传上面的文件,然后 elasticsearch 解析它并将每个对象变成自己的文档?
我们正在使用弹性搜索 1.3.2
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函数是:
python - 通过批量 API、扫描和滚动重新索引弹性搜索
我正在尝试重新索引我的弹性搜索设置,目前正在查看弹性搜索文档和使用 Python API 的示例
不过,我有点困惑这一切是如何运作的。我能够从 Python API 获得滚动 ID:
现在我的问题是,这对我有什么用?知道滚动 ID 甚至能给我带来什么?文档说要使用“批量 API”,但我不知道 scoll_id 是如何影响这一点的,这有点令人困惑。
考虑到我正确获得了scroll_id,谁能给出一个简短的例子来说明我如何从这一点重新索引?
elasticsearch - 从一个elasticsearch集群的索引中获取所有文档,并在另一个elasticsearch集群中进行索引
我的目标是从 ES 集群的索引中获取所有文档,并将它们插入到另一个 ES 集群中,保持相同的元数据。
我查看了 mget API 来检索数据和 Bulk API 来插入它,但是这个 Bulk API 需要一个特殊的结构:
所以我的想法是在一个文件中检索我的 EScluster1 的数据并重新排列它以满足 Bulk API 的结构并将其索引到 EScluster2。
您是否看到更好和/或更快的方法?
javascript - ElasticSearch 删除批量项
我想删除某种类型的所有文档。
但这仅适用于 1.0 及更高版本:
我在 ES v1.4.x 上试过了,效果很好。当我在 ES v0.90.13 上运行时它失败了。任何帮助,将不胜感激。