python实现MongoDB数据同步到Elasticsearch
1. 背景
- 引用elasticSearch的百科:https://baike.baidu.com/item/elasticsearch/3411206?fr=aladdin
- ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。
- 我们建立一个网站或应用程序,并要添加搜索功能,但是想要完成搜索工作的创建是非常困难的。我们希望搜索解决方案要运行速度快,我们希望能有一个零配置和一个完全免费的搜索模式,我们希望能够简单地使用JSON通过HTTP来索引数据,我们希望我们的搜索服务器始终可用,我们希望能够从一台开始并扩展到数百台,我们要实时搜索,我们要简单的多租户,我们希望建立一个云的解决方案。因此我们利用Elasticsearch来解决所有这些问题以及可能出现的更多其它问题。
- 关于Elasticsearch的基础教程,可以参考:http://blog.csdn.net/cnweike/article/details/33736429
- 总结:也就是说,如果想要将mongodb中的数据更好的展示在前端,那么Elasticsearch将是一个非常好的选择。
2. 环境
- python 3.6.1
- 系统:win7
- IDE:pycharm
- Elasticsearch5.4.2
- Java JDK
- mongodb v3.2
- mongodb可视化工具:mongobooster
3. 同步说明
- 第一步,打开mongoDB的服务:cmd下启动数据库mongod –dbpath=f:/data,通过mongobooster查看确保启动成功。
- 第二步,打开Es服务:双击 E:\Elasticsearch5.4.2\bin\elasticsearch.bat,通过浏览器地址:localhost:9200 查看确保启动成功。
- 第三步,要确保执行code能访问到这两个数据库地址: es_url 和 mongo_url,他们在同一个网络,能够互通。
4. 启动相关服务
4.1. 启动mongoDB
- mongod的安装:https://jingyan.baidu.com/article/f3e34a12ac10cef5eb653583.html
- cmd下输入mongod –dbpath=f:/data启动服务。(f:/data是数据的存放地址,而且已设置好环境变量)
- 进入mongobooster查看数据: