环境说明:
操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境
mongodb: 4.0.3
solr: 7.5.0
python: 3.5
配置mongodb
1.拉取mongodb镜像,创建容器;
这里我使用的是docker容器管理UI进行操作的,强烈推荐portainer,确实好用;登陆后台管理界面后,直接点击App Templates,找到mongo,点击进去就是配置了。这里有一点说明,最好点击show advanced options配置一个固定端口;
2.配置容器
点击已部署配置好的容器,选择Duplicate/Edit按钮,配置端口,我配置的是28766,在Command处,修改成/bin/sh,把Entry Point留空,这是因为拉取的镜像模板是配置好默认启动的,如果这里不清空,就直接启动了,再去里面处理的时候会有一些麻烦。如下图:
记得将端口暴露。勾上下图那个
完成之后,点击Deploy the container,启动容器
3.点击console,进入到容器的shell中,输入 apt-get update 进行升级,完成之后安装python环境和pip
apt-get update
apt-get install python3
aptapt-get install python3-pip
安装python环境是因为mongo-connector是基于python运行的。
4.安装mongo-connector
pip3 install 'mongo-connector[solr]'
5.将mongodb设置为指定副本启动,&表示在后台运行,(如果不加上前面那段,是连接不上的,非docker部署的请忽略前面那段sh)
/usr/local/bin/docker-entrypoint.sh mongod --replSet my_demo&
6.初始化mongodb
mongo
rs.initiate()
至此,mongodb环境已配置完成。我们可以使用连接工具测试一下是否正常。
配置solr
1.拉取镜像,创建容器并启动;
2.创建一个solr core
solr create -c my_demo
3.打开浏览器,输入solr管理的URL地址,http://192.168.1.60:8983/solr/(即ip:solr运行的端口)打开solr管理界面
4.将schema.xml和solrconfig拷贝出来(这个是在安装docker的主机上运行,主要是容器中不好配置,无界面,如果不是使用的docker,可以在对应的路径内找到这俩个文件)
sudo docker cp d0547a1ed6cfb260f4ca4f4e4c2c140fdb99421b75b5155e735b45a075a1c150:./opt/solr/server/solr/my_demo/conf/solrconfig.xml ./solrconfig.xml
sudo docker cp d0547a1ed6cfb260f4ca4f4e4c2c140fdb99421b75b5155e735b45a075a1c150:./opt/solr/server/solr/my_demo/conf/managed-schema ./schema.xml
其中 d0547a1ed6cfb260f4ca4f4e4c2c140fdb99421b75b5155e735b45a075a1c150 是容器的id,换成自己的容器id即可
5.在solrconfig.xml中添加
<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
6.在schema.xml中配置数据结构
<field name="title" type="string" indexed="false" stored="true"/>
<field name="content" type="text_general" indexed="false" stored="true"/>
7.将文件拷贝回solr目录下
sudo docker cp ./solrconfig.xml 3ed272a8ed088675dab8c6fab9335a6aedf7dcef9d73ed3a9d922f315be6f572:./opt/solr/server/solr/my_demo/conf/solrconfig.xml
sudo docker cp ./schema.xml 3ed272a8ed088675dab8c6fab9335a6aedf7dcef9d73ed3a9d922f315be6f572:./opt/solr/server/solr/my_demo/conf/schema.xml
8.登陆solr管理端,点击 core Admin->my_demo,点击reload重新加载,然后在下面选择 my_demo->schema,进行查看是否修改,如果修改成功的话,这里会显示已经修改后的schema。在这一步时有一点需要注意,因为my_demo新建时,并没有schema.xml这个文件,有的是managed-schema这个文件,在这一步操作之前,要删除managed-schema,或者将其改名为schema.xml,否则是一直读取的managed-schema这个文件
至此,solr也就配置完成了。
在mongodb容器中运行 mongo-connector
mongo-connector --auto-commit-interval=0 -m localhost:27017 -t http://192.168.1.60:8983/solr/my_demo -d solr_doc_manager
其中格式为
mongo-connector -m <mongodb server hostname>:<replica set port> \
-t <replication endpoint URL, e.g. http://localhost:8983/solr> \
-d <name of doc manager, e.g., solr_doc_manager>
-n <collection e.g. db.collection>
my_demo是刚才建的solr core,
在mongodb中插入数据测试一下