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

Solr 8.9.0与MongoDB 5.0社区版集成实操问题咨询

Solr 8.9.0 + MongoDB 5.0 集成实操步骤

以下操作完全适配你当前使用的版本组合(Linux环境、Java14、Solr8.9.0、MongoDB5.0社区版、已安装mongo-connector):


前置检查

  • 确认mongo-connector已安装solr文档管理器,若未安装执行命令:pip install 'mongo-connector[solr]'
  • 确认MongoDB已开启副本集(mongo-connector依赖oplog实现增量同步,必须开启副本集,单节点也可配置)
  • 确认Solr服务正常运行,对应core已创建完成

1. MongoDB 侧配置

  1. 若未开副本集,修改MongoDB配置文件mongod.conf,新增以下配置:
replication:
  replSetName: rs0 # 副本集名称可自定义
  1. 重启MongoDB服务,进入Mongo Shell执行命令初始化副本集:rs.initiate()
  2. 若MongoDB开启了身份认证,创建一个拥有oplog读取权限的账号,用于mongo-connector连接

2. Solr 侧配置

  1. 进入你创建的对应core的conf目录,修改managed-schema(或schema.xml):
    • 配置字段映射,将MongoDB的字段和Solr的字段一一对应,同时将MongoDB的_id映射为Solr的默认唯一键id,示例:
    <!-- 唯一键配置保持默认即可 -->
    <uniqueKey>id</uniqueKey>
    <!-- 按需添加你需要同步的字段,类型和MongoDB对应字段匹配 -->
    <field name="title" type="text_general" indexed="true" stored="true"/>
    <field name="content" type="text_general" indexed="true" stored="true"/>
    <field name="create_time" type="pdate" indexed="true" stored="true"/>
    
    • 可按需关闭自动字段类型猜测,避免同步时类型不匹配报错
  2. 检查solrconfig.xml,确认/update/json请求处理器正常开放,若Solr开启了身份认证,提前记录账号密码后续配置使用
  3. 重启Solr服务使配置生效

3. mongo-connector 配置

在任意目录新建配置文件solr_sync_config.json,参考示例填写配置:

{
  "mainAddress": "mongodb://localhost:27017/?replicaSet=rs0",
  "docManagers": [
    {
      "docManager": "solr_doc_manager",
      "targetURL": "http://localhost:8983/solr/你的core名称",
      "bulkSize": 100,
      "uniqueKey": "id"
    }
  ],
  "namespaces": {
    "你要同步的MongoDB库名.你要同步的集合名": true
  },
  "fieldMap": {
    "_id": "id"
  },
  "continueOnError": true,
  "verbosity": 2
}

若MongoDB或Solr开启了身份认证,在对应地址中加上账号密码即可,示例:mongodb://账号:密码@localhost:27017/?replicaSet=rs0


4. 启动与同步验证

  1. 执行命令启动mongo-connector:mongo-connector -c solr_sync_config.json
  2. 查看控制台日志,无报错则说明启动成功,首次启动会自动执行全量同步,同步完成后自动进入增量同步模式
  3. 验证同步效果:
    • 全量验证:进入Solr后台查询界面,执行*:*查询,确认MongoDB中的历史数据已同步到Solr
    • 增量验证:在MongoDB中新增/修改/删除一条数据,等待3-5秒后在Solr中查询,确认变更已同步

常见问题排查

  • 若同步时报字段类型错误,检查Solr字段配置和MongoDB对应字段的类型是否匹配
  • 若mongo-connector启动报错提示无法获取oplog,确认MongoDB副本集配置正确且账号有oplog读取权限
  • 若数据仅部分同步,检查namespaces配置是否正确,排除未配置的库/集合被过滤的情况

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 22:18:01