Solr 9.3.0执行add-repo命令返回MIME类型错误求助
解决Solr 9.3.0云模式下安装Data Import Handler包的add-repo错误
问题分析
你遇到的错误本质是Solr包管理器无法正确解析目标仓库的JSON响应——尽管能获取到JSON内容,但格式可能不符合Solr官方包仓库的规范要求,导致解析失败。
解决方案
1. 手动添加仓库配置
跳过add-repo命令,直接手动创建仓库配置文件:
- Windows环境:找到Solr安装目录下的
server\solr\packages\repositories文件夹(不存在则手动创建),新建searchscale-dih.json文件,将你命令窗口中显示的仓库JSON内容复制进去(示例结构如下):
{ "id": "searchscale-dih", "name": "SearchScale Data Import Handler Repository", "url": "https://raw.githubusercontent.com/searchscale/dataimporthandler/master/repo/", "type": "remote" }
- Ubuntu环境:路径为
/opt/solr/server/solr/packages/repositories(根据实际安装路径调整),同样创建上述JSON文件。
2. 重启Solr并安装包
- 停止当前Solr集群:
solr stop -all - 以云模式重启Solr:
solr start -c(确保已启用包支持,solr.in.sh/solr.in.cmd中SOLR_PACKAGES_ENABLED=true) - 执行安装命令:
solr package install dataimporthandler
3. 版本兼容性检查
确认该Data Import Handler包的版本(你看到的version=2.2)是否支持Solr 9.3.0。如果存在版本不兼容,可寻找适配9.x版本的DIH包,或考虑使用Solr官方内置的Data Import Handler(若满足需求)。
4. 云模式额外注意
- 确保所有Solr节点都能访问仓库URL,或手动将包文件分发到每个节点的
server/solr/packages目录,避免集群同步问题。 - 安装完成后,需在每个核心的
solrconfig.xml中添加DIH配置(参考包文档),并重新加载核心。
关于指定JSON格式的疑问
Solr包命令本身默认使用JSON格式交互,无需额外指定。问题核心是目标仓库的JSON响应不符合Solr包管理器的解析规则,因此手动添加配置是最直接的绕过方法。
内容的提问来源于stack exchange,提问作者CKee
相关产品推荐
相关产品推荐

