gpt4 book ai didi

python - 将许多JSON对象索引到Elasticsearch中-规范方法

转载 作者:行者123 更新时间:2023-12-02 22:39:03 24 4
gpt4 key购买 nike

这是我一直面临的情况,我不确定我采用的解决方案是否是规范/智能的解决方案。假设您有一个文件,其中每一行都是有效的JSON。此外,每个对象都包含一个typeid字段,并且每个对都是唯一的。我的目标是将所有对象索引到ES群集上的索引中。到目前为止,我采取了两种方法:

结合使用bulk API和jq,例如:

$ cat foo.json | jq -c '. | {"index": {"_index": "your_test_index", "_type": "doc_type"}}, .' | curl -XPOST localhost:9200/_bulk --data-binary @-

这可以很好地工作,但是速度非常慢。

我也尝试使用Python客户端,但是仍然必须逐行阅读并逐一索引它们。

是否有某种方法可以“推送”整个文件并引导ES以相同的方式处理所有行?换句话说,以批处理方式索引大量JSON对象的有效方法是什么?

最佳答案

绝对是bulk方法。但是您需要为此做更多的工作,因为它不像创建一个文件并将其发送给ES并期望它能够处理那样简单。

如果文件太大,当然会很费劲。
请阅读本文档的这一部分,尤其是最后一部分,它描述了如何确定需要批量的数量:https://www.elastic.co/guide/en/elasticsearch/guide/current/bulk.html

每个集群都有自己的特征,每个集群甚至可以处理一定数量的批次/某些并发批次。这取决于您的具体情况,因此请进行测试,并确定适合您特定用例的最佳编号。

关于python - 将许多JSON对象索引到Elasticsearch中-规范方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38658471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com