问题标签 [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 投票
3 回答
1684 浏览

elasticsearch - elasticsearch批量索引和动作部分的冗余数据

当使用弹性搜索的批量 API 索引数据时,这里是站点文档中的示例 json

在“准备”要由批量 API 使用的数据时,我必须在第一行指定操作,在下一行我将提供数据。每行上的一些冗余部分可能看起来很明显并且非常无害,但是当我索引数万亿行时,它不会增加延迟吗?是否有更好的方法通过指定索引名称并在标题处仅键入一次来推送所有行?特别是当我可以使用自动生成的 id 时,我可以避免生成 TB 的数据只是为了一次又一次地为同一目的添加到每一行。

我相信我在这里遗漏了一些明显的东西,否则我相信弹性公司的那些人足够聪明,已经弄清楚了,如果他们这样做了,应该有一些原因。但是什么?

0 投票
1 回答
127 浏览

python - 批量弹性搜索 5.6 中的索引 json 文件

我有一个包含大约 590,035 个文件的文件夹json。每个文件都是一个必须被索引的文档。如果我使用 python 索引每个文档,则需要 30 多个小时。如何快速索引这些文档?

注意- 我见过批量 api,但这需要将所有文件合并到一个文件中,这需要与上述类似的时间。请告诉我如何提高速度。谢谢你。

0 投票
1 回答
1924 浏览

elasticsearch - 在 ElasticSearch 6+ 中批量删除文档中的属性

我需要从 ElasticSearch 中的所有文档中删除特定属性。有没有办法做到这一点,可以通过批量 API 完成。我找不到从 ElasticSearch 中批量删除属性的 API。

有没有办法达到同样的效果。

我的文档的示例部分:

删除相同的脚本:

0 投票
1 回答
1826 浏览

java - Elasticsearch Java API 7.0 Bulk Insert 尝试基本示例,抛出错误

Java 1.8、Elasticsearch 低级和高级 Rest 客户端 7.0.0

我正在尝试此处找到的文档中的简单示例:批量 API

错误:

那么缺少什么类型?我尝试添加映射,将 opType("create") 添加到在 request.add() 中创建的 IndexRequest?

是的,这可能是我的一些简单的疏忽,但我已经为此苦苦挣扎了一段时间,希望能得到一些帮助。

0 投票
0 回答
162 浏览

elasticsearch-5 - Elasticsearch HTTP 500 错误 {"message":null}

我遇到来自 _bulk 端点的错误,但由于 ES 发送的错误消息为空,我无法解决。我正在通过 ES REST API 调用 _bulk 端点。这只是间歇性地发生。

我已经尝试通过负载测试来复制它,但我仍然无法这样做。

这是我得到的堆栈跟踪的片段:

HTTP/1.1 500 Server Error{"message":null} at org.elasticsearch.client.RestClient$1.completed(RestClient.java:354) at org.elasticsearch.client.RestClient$1.completed(RestClient.java:343) at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119) at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:177) at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:436) at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:326) at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:265) at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81) at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39) at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:114) at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:162) at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:337) at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:315) at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:276) at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:104) at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:588) at java.lang.Thread.run(Thread.java:745)

0 投票
0 回答
33 浏览

spring-boot - 加载 BulkApi 时找不到方法 readString(Path)

我将使用 BulkApi 加载大量数据,但是在编译代码时它会显示错误。

预期输出:它应该将指定路径上的所有数据加载到 ES。实际输出:

“字符串内容 = Files.readString(filePath);”上的错误 找不到符号。符号:方法 readString(Path) 位置:类文件

0 投票
1 回答
568 浏览

python - Elasticsearch-python 批量助手 API 上没有 filter_path 选项

来自_index_bulk API 的响应包含相当多的信息。此信息可用于对请求进行故障排除或实现重试逻辑,但可能会占用大量带宽。在这个例子中,索引一个 32 字节的文档会产生一个 339 字节的响应(包括标题):

如果我们像下面这样更新/索引一个文档,

它将返回如下响应,

现在,如果我们将filter_path_bulk与我们现有的使用API的索引过程一起使用

然后响应会像,

所以我的问题是如何使用filter_path过滤掉Elasticsearch-python 批量 API或流式批量 API 的响应?

0 投票
0 回答
89 浏览

performance - 为什么只索引一个文档需要这么长时间

有一个调度器任务(每十分钟一次)将更改的数据从 Oracle 同步到 ElasticSearch,但偶尔会出现 SocketTimeOutException

并且从 indexing_slowlog 可以找到一些文档需要很长时间

但它是批量更新,为什么只有一个批次的文档很长(每批次 100 个)?

以及什么原因导致仅索引一个文档需要这么长时间。

PS。

15:12:19 期间的 gc 日志

CPU 使用率 13:00 ~ 15:30 在此处输入图像描述

0 投票
2 回答
919 浏览

node.js - Elasticsearch 批量 API 发布请求中的换行错误

我正在尝试使用 elasticsearch bulk api 将多条记录插入索引。我的 JSON 看起来像这样:request json

\\n在文档末尾插入了一个新行 ( ),但我仍然得到newline error.

0 投票
1 回答
375 浏览

json - 将新行 JSON 上传到 Elasticsearch 批量 API

我正在尝试使用批量 API 将新行 JSON 上传到 Elasticsearch。我上传的批量 JSON 看起来像这样,每个 JSON 都在一个新行上:

JSON 的头部没有索引或键。当然,当我尝试使用此命令上传它时(my_index 是一个没有映射的空白索引)。

我收到错误消息:

因此,如果我按照文档正确理解了问题,那么问题是错误是因为在 JSON 的开头没有指定索引或类型。我的问题是我不明白如何添加必要的索引和类型以便可以读取 JSON。

我正在使用 Curl 创建数据并将数据添加到我的索引中,那么最好的方法是格式化 curl 命令以正确创建索引并允许上传我的 JSON?

(我之前使用过MosheZada出色的 Elasticsearch_loader 工具,它可以让您在命令中指定索引和类型。这效果很好,但我试图了解该命令中发生了什么以及我如何使用 Curl 做同样的事情,如果需要。)