windows下利用mongo-connector进行elasticsearch搜索引擎安装及同步mongodb数据遇到的问题解决

时间:2021-08-15 17:31:53

利用mongo-connector进行elasticsearch安装及同步mongodb数据遇到的问题解决

一、elasticsearch安装

官网下载https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-6

注:尽量不要下载6.x,否则会出现数据无法同步,更新数据库数据elasticsearch无响应,可能是目前6.1.2版本不支持或者我自己有些地方做的不对。

二、elasticsearch同步mongdb数据

同步数据过程参考http://blog.csdn.net/shiyaru1314/article/details/52468436

三、遇到的问题解决

1. 使用mongo-connector的原因

有的教程使用的是_river,这种方法支持elasticsearch1.x,2.x,之后的版本应该就不支持了(参考资料找不见了...

2. rs.initiate()初始化时,”ok”=0;

这个地方需要配置config

> config={_id:"rs0",members:[{_id:0,host:"127.0.0.1:27017"}]}

> rs.initiate(config)

3. 连接mongodbelasticsearch异常关闭

也就是这一步:mongo-connector  --auto-commit-interval=0 -m 127.0.0.1:27017 -t  127.0.0.1:9200 -d elastic_doc_manager

检查mongo-connector.log发现问题如下:

2018-01-22 15:40:59,299 [ALWAYS] mongo_connector.connector:51 - Starting mongo-connector version: 2.5.1
2018-01-22 15:40:59,299 [ALWAYS] mongo_connector.connector:51 - Python version: 3.5.2 (v3.5.2:4def2a2901a5, Jun 25 2016, 22:18:55) [MSC v.1900 64 bit (AMD64)]
2018-01-22 15:40:59,300 [ALWAYS] mongo_connector.connector:51 - Platform: Windows-10-10.0.15063-SP0
2018-01-22 15:40:59,301 [ALWAYS] mongo_connector.connector:51 - pymongo version: 3.6.0
2018-01-22 15:40:59,320 [ALWAYS] mongo_connector.connector:51 - Source MongoDB version: 3.6.0
2018-01-22 15:40:59,320 [ALWAYS] mongo_connector.connector:51 - Target DocManager: mongo_connector.doc_managers.elastic_doc_manager version: 0.3.0
2018-01-22 15:40:59,377 [ERROR] mongo_connector.oplog_manager:202 - OplogThread: Last entry no longer in oplog cannot recover! Collection(Database(MongoClient(host=['127.0.0.1:27017'], document_class=dict, tz_aware=False, connect=True, replicaset='rs0'), 'local'), 'oplog.rs')
2018-01-22 15:41:00,377 [ERROR] mongo_connector.connector:398 - MongoConnector: OplogThread <OplogThread(Thread-3, stopped 15956)> unexpectedly stopped! Shutting downShut

解决办法:

删除python安装目录(或.log的根目录)下的oplog.timestamp,重新连接即可。

已经连接上,但是更新数据库(增删改查等),elasticsearch并无响应,也就是没有建立相应的索引

如果前面都正常,只是这一步,那很有可能是elasticsearch版本太新,安装5.x即可解决。

4. elasticsearch匹配的最小单元必须是一个词条?不支持部分匹配?

可以进行模糊匹配等,通过?,*,或者正则匹配等方式

具体请参考https://www.cnblogs.com/huanxiyun/articles/5890897.html

5.如果需要中文可以安装analysis-ik(下载合适的版本,不然会报错,版本不匹配incompatible

./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip
很多不完善,欢迎交流。 

参考资料:http://blog.csdn.net/shiyaru1314/article/details/52468436

http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html

https://www.cnblogs.com/huanxiyun/articles/5890897.html