问题标签 [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.
python - 如何从python对elasticsearch进行批量索引
我有近 10K 的 json 文档,我想通过使用来自 python 的 elasticsearch bulk api 将所有这些文档推送到 elasticsearch。我浏览了一些文档,但没有得到任何解决方案。
我都试过了,但没有结果,我收到了这个错误
请帮我
elasticsearch - 如何在 Elasticsearch 的查询中获取“相关文档”?
我在弹性搜索中有一个问题,我无法解决:
我在索引中有两种不同的类型,一种称为“关键字”,另一种称为“产品”。关键字具有字符串属性“keyword_content”,产品具有文本属性“content”。
我需要查询所有关键字及其前 N 个相关产品。相关关系由标准查询定义
我知道我在 ElasticSearch 中有父子功能,但是当我插入关键字时,我事先并不知道相关产品(唯一的方法是在插入关键字之前,对每个关键字使用搜索查询以了解哪些产品是相关的,并用正确的产品索引关键字,但这意味着在插入之前查询每个关键字,这是昂贵的)。
让我们假设我在 ElasticSearch 中已经有了两个 UNRELATED 类型。我如何查询所有关键字及其关联的 N 个相关产品。我正在寻找一种“动态字段”,它是使用每个文档的“keyword_content”属性作为查询字符串对不同类型进行查询的结果。
我想要类似的东西:
关键字文档示例:
产品文件示例
我想要这样的东西(我正在简化elasticsearch格式以更好地解释我的用例)(不是说这些类型不相关,或者我可以将它们关联起来,但我无法指定哪些keyowrds与哪个产品相关,我希望elasticSearch告诉我):
python-3.x - Elasticsearch-py 批量助手相当于 curl 文件
我希望使用 elasticsearch python 客户端(并且不使用subprocess
)复制以下命令:
我试图在没有任何运气的情况下使用批量助手:
这会导致type is missing
错误。
该文件在使用时处理得很好curl
,看起来有点像这样:
请注意,我宁愿不更改文件的内容,因为我有大约 21000 个具有相同格式的文件。
json - 如何批量更改 Elastic Search 的 JSON 格式
我有以下格式,并希望使用 elasticsearch 进行批量预处理。
我正在尝试在我的每一行之前添加索引、类型行。
在阅读之前的帖子时,我使用的是Kevin Marsh 的帖子,如下所示:
我没有使用管道,因为我试图找出之前的错误。我收到错误 jq:no such file or directory。然后我用jq --version and get jq-1.5-1-a5b5cbe
.
任何帮助深表感谢。
elasticsearch - 更新数百万个文档的嵌套字段
我使用脚本批量更新来更新嵌套字段,但这非常慢:
你知道另一种更快的方法吗?
似乎可以存储脚本以便不为每次更新重复它,但我找不到保持“动态”参数的方法。
elasticsearch - 如何在弹性搜索中将元素插入到已经存在的列表中
假设我有如下存储的文档。
我需要使用批量 API 向文档中的 valueList 添加更多元素,其中包含文档 ID 列表。结果应该看起来像
我能做些什么来实现这一目标?我尝试使用脚本,但它只更新一个文档。
抱歉,我对弹性搜索真的很陌生。在这个问题上我什至可能是愚蠢的。请原谅并让我清楚这个问题。
elasticsearch - 如何处理批量请求的错误
我正在使用 Elasticsearch 批量 API 一次将大量文档发送到索引和删除。如果一个文档有错误,其他文档将被成功索引或删除。这会导致弹性存储中的数据状态错误,因为在我的案例中,文档是相互关联的。我的意思是,如果一个文档的字段具有某些值,那么还有其他文档也应该对该字段具有相同的值。我不确定如何处理来自批量请求的此类错误。是否可以以任何方式回滚请求?我阅读了类似的问题,但无法获得处理此类案件的解决方案。或者不是回滚,有没有什么办法只有在没有错误的情况下才发送数据?或类似请求的空运行?
elasticsearch - 批量 API 的发布请求给出的状态码为 406,如何解决?
我正在使用 Elastic search 6.1 版本 我的数据附加正确,我在请求末尾添加了 '\n'。
我的代码如下:
我正在使用 python 连接到弹性搜索。
我从这个链接 Bulk index document from JSON file into ElasticSearch得到了答案
我必须将标头作为 application/x-ndjson 传递给请求。
elasticsearch - 提高 Elasticsearch 的批量索引请求性能
tl;dr:目前,我使用 Elasticsearch 5.6 作为我的 go 应用程序的数据存储。我有一百万个文档分布在 12 个索引中。每个索引有 5 个分片和 2 个副本。首先,我从 Elasticsearch 加载这些文档,然后对其进行处理,然后以 10000 文档/批次的速率批量索引它们。我运行 3 个工作人员,每个工作人员一次有一个异步 goroutine。这些 goroutine 是每个索引的,因此它们会为每个索引发送批量索引请求。这意味着一个工作人员在一个 goroutine 中发送大约 100,000 个文档。文档分批发送,每个 goroutine 发送近 10 批。整个过程需要一分钟多的时间。大多数时间都花在批量索引上。
我当前的 Elasticsearch 使用 6GB RAM 和 3.5GB 堆大小运行。我尝试通过将索引缓冲区大小增加到 20% 来调整 Elasticsearch 以提高索引速度。700MB。我禁用了不需要索引的字段的索引。我优化了映射中的数字字段类型。我禁用了 _all 字段。我将索引编解码器(压缩方法)更改为 best_compression。做了这一切之后,并没有太大的改善。
因此,我想获得提高批量索引性能的想法,以便在一分钟内完成所有过程。如果我向 Elasticsearch 添加更多 RAM 和堆大小,它会得到改善吗?还有其他设置/调整吗?
目前,我处于开发阶段,因此我也可以切换到其他数据存储系统,以适应我快速读取、写入和分析数据的要求。这样的想法也受到欢迎。
node.js - client.bulk() Node.js 的 ElasticSearch 非法参数异常
我尝试将数据发送到 ES,并且我正在使用 POST 请求逐行发送数据,并且它适用于小文件。
当我更改为使用 client.bulk() 时,我不断收到以下错误消息:
我注意到,在我使用 bulk 之后,target_status_code 字段的类型已经从 string 变为 number,并且许多 keyord 字段都消失了。
我只修改了发送请求功能,所以我不明白为什么它在使用批量时不起作用。