You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr Cloud模式下批量添加文件夹文档至集合失败求助

Solr Cloud批量导入JSON文档失败的解决方案

嘿,我看你在Solr Cloud模式下批量导入指定文件夹的JSON文档时踩坑了,咱们一步步来排查解决:

最关键的错误:API端点URL用错了

你当前命令里的URL是带#的Solr管理后台页面地址:

http://mysolr.net:8983/solr/#/collection_indexer_shard1_replica1/update/json/docs

这个#后面的内容是浏览器前端的路由路径,服务器根本不会处理这部分内容,相当于你请求的是无效的API端点,这肯定会失败。

正确的批量更新API地址应该直接指向集合的更新接口,不需要带#和分片副本的后缀:

http://mysolr.net:8983/solr/collection_indexer/update/json/docs

修正后的执行命令

考虑到你在CDH的/opt/cloudera/parcels/CDH/jars目录下执行命令,推荐两种方式:

方式1:使用Solr自带的post.jar(CDH通常包含这个包)

java -jar solr-post.jar -Dtype=application/json -Drecursive -Durl="http://mysolr.net:8983/solr/collection_indexer/update/json/docs" /tmp/solr_data

方式2:使用Solr的post脚本(如果能找到Solr bin目录)

如果你的Solr安装目录下有bin/post脚本,用这个更简便:

bin/post -c collection_indexer -filetype json -recursive /tmp/solr_data

额外排查点(如果修正后还是失败)

  • JSON格式检查:确保/tmp/solr_data下的每个JSON文件是单个合法的JSON文档,或者是标准的JSON数组(如果是数组,可能需要添加-Dcommit=true参数确保提交)
  • Schema匹配验证:检查你的collection_indexer集合的schema是否和JSON里的字段匹配,有没有必填字段未提供的情况
  • 查看Solr日志:去Solr的日志目录(CDH中通常是/var/log/solr/)查看具体错误信息,比如字段不匹配、权限问题等
  • 权限确认:确保执行命令的用户有读取/tmp/solr_data的权限,同时Solr服务器允许当前客户端IP的请求

内容的提问来源于stack exchange,提问作者Choix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:51:54