您的位置:首页 > 数据库 > Mongodb

使用mongo-connector实现mongoDB 和solr 同步数据

2017-10-17 13:56 621 查看
mongoDB 和solr 实现同步数据 需要通过中间插件的形式进项同步。实现方式使用mongo-connector。

版本说明

centOS : 7.4

mongodb : 3.4

mongo-connector : 2.5.2

python : 2.7

mongo-connector(github地址)

mongodb副本集模式配置

说明:一下方法只是测试命令使用,连接其他语言对应不同的方式。

1、关闭运行的mongodb实例

2、创建mongodb实例

//例如 不同的安装方式启动方式不同 如下方法为在线安装(参考centOS 安装mongodb)
mongod --dbpath=/root/motui/data --port 27018 --replSet rs


3、启动副本集

rs.initiate()




rs.status()




rs.conf()




4、可以使用add方法添加副本集的成员

rs.add(HOST_NAME:PORT)


5、判断当前运行的mongodb服务是否为主节点

db.isMaster()




安装mongo-connector

//pip安装
pip install mongo-connector

//git安装进入自定义目录
git clone https://github.com/mongodb-labs/mongo-connector.git cd mongo-connector
python setup.py install


安装为Linux服务(参考官方文档)

安装solr-doc-manager

//pip安装
pip install solr-doc-manager

//git安装
git clone https://github.com/mongodb-labs/solr-doc-manager cd solr-doc-manager
python setup.py install


solr-doc-manager 官方文档

配置solr的core

1、修改managed-schema

<uniqueKey>id</uniqueKey>
//修改为
<uniqueKey>_id</uniqueKey>

//添加
<field name="_id" type="string" indexed="true" stored="true" />
<field name="_ts" type="long" indexed="true" stored="true" />
<field name="ns" type="string" indexed="true" stored="true"/>

//注释原有的
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />


2、修改solrconfig.xml

//存在则打开注释,不存在添加
<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />


访问如下地址,存在JSON数据则成功

http://solr_host:8080/solr/core名称/admin/luke?show=schema&wt=json


连接配置

进入mongo-connector目录

mongo-connector  --auto-commit-interval=0 -m mongo_host:27018 -t http://solr_host:8080/solr/core名称 -d solr_doc_manager


连接mongodb进行插入操作

db.c.insert({"name": "Mongo Connector test"})


solr实时查询结果如下

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mongodb solr