elasticsearch - CURL 命令未将大数据索引到弹性搜索中
问题描述
我已将旧 RDBMS 数据库中的一堆数据(500 000 条记录)导出到 json 格式的平面文件中,例如:
{"index", {"_id": 1}}
{"Name": "Jack"}
...
{"index", {"_id": 500000}}
{"Name": "Joe"}
我正在尝试使用 CURL 命令将此文件索引到 Elasticsearch 中,但 CURL 命令只是退出而不索引任何数据并且没有任何消息。
这是 CURL 命令:
curl -XPUT "localhost:9200/person/_doc/_bulk" -H "Content-Type: application/json" --data-binary "@person_data.json"
谁能建议我做错了什么?还是 CURL 命令无法发送大数据(尽管大约 175MB)?
我正在运行一个大型连接查询,它需要花费大量时间从 RDBMS 获取所有 500k 行。然后我将这些记录导出为文件中的 json 格式,以便弹性搜索批量 API 可以使用它。但是,正如我所见,CURL 命令根本无法索引如此庞大的数据而没有任何错误消息。
在这种情况下,是否有任何 GUI/控制台工具可以批量索引数据?
解决方案
有一个设置,http.max_content_length
在 Elasticsearch 中调用,用于配置 http 内容的最大大小。
默认情况下它等于 100mb,这就是你不能正确索引它的原因。因此,您需要更改它并重新启动 Elasticsearch。最大可能值为Integer.MAX_VALUE
。
有关它的更多信息 - https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-http.html
推荐阅读
- c++ - C++ 和 Rust 之间的共享内存
- python - 如何用 discord bot python 警告某人
- java - 如何从字节 [] 打印十六进制?
- amazon-web-services - Amazon Linux 2 上的 Elastic Beanstalk、Django、Docker 平台 - 在 postdeploy 钩子不工作中运行 docker-compose exec
- facebook-graph-api - Facebook Graph API 返回组中事件的空数组 (GET /v11.0/{group-id}/events HTTP/1.1)
- microcontroller - 什么样的代码/指令可以使MCU以最大功耗运行
- python - 安装 cairosvg 和加载库时出错
- java - ArrayList 输出不断重复
- gmail-api - Google Gmail 范围如何在云平台中验证?
- flutter - 如何在下拉菜单中使用可见性小部件