安装ElasticSearch
1. 下载elasticsearch安装包。 下载地址 https://www.elastic.co/downloads/elasticsearch
2. 解压elasticsearch包到安装目录。如D:\Elasticsearch,并将D:\Elasticsearch\bin添加到系统path
安装JDK
1. 下载JDK,最低版本jdk update u55。下载地址 http://www.oracle.com/technetwork/java/javase/overview/index.html
2. 配置JAVA_HOME环境变量。指向JDK的安装目录,如D:\Java\jdk\
安装maven
1. 下载maven安装包。下载地址 http://maven.apache.org/download.cgi
2. 解压maven包到安装目录。如D:\Maven,并将D:\Maven\bin添加到系统path
3. 配置maven本地仓储位置。打开D:\Maven\Config\setting.xml,添加<localRepository>D:\Maven\m2\repository</localRepository>
注:(1) 步骤3可以跳过;(2) 如果不想从源码安装river-mongodb插件,可以不用安装maven
安装river-mongodb插件
1. 下载elasticsearch-river-mongodb插件最新源码包。下载地址 https://github.com/richardwilly98/elasticsearch-river-mongodb
2. 解压源码包,并编译。命令行进入elasticsearch-river-mongodb-master目录,并执行命令mvn package -Dmaven.test.skip=true
3. 编译过程比较慢,需要耐心等待。编译生成的插件在elasticsearch-river-mongodb-master\target\releases目录下,文件名形如elasticsearch-river-mongodb-2.0.6-SNAPSHOT.zip
4. 安装编译生成的插件。直接解压到elasticsearch安装目录下的plugins\river-mongodb目录,或者命令行运行命令plugin -i river-mongodb -u file:/E:\Documents\编程\ElasticSearch\install\elasticsearch-river-mongodb-master\target\releases\elasticsearch-river-mongodb-2.0.6-SNAPSHOT.zip
注:如果不想从源码安装river-mongodb插件,可以直接在命令行运行plugin -i com.github.richardwilly98.elasticsearch/elasticsearch-river-mongodb/2.0.6(这里2.0.6为版本号)
安装curl工具
配置mongodb river
1. 下载curl工具。下载地址 http://curl.haxx.se/dlwiz/?type=bin1. 运行elasticsearch。运行elasticsearch安装目录下bin\elasticsearch.bat即可
2. 命令行运行curl -XPUT "http://127.0.0.1:9200/_river/icssa/_meta?pretty" -d "{\"type\": \"mongodb\", \"mongodb\": {\"host\":\"127.0.0.1\", \"port\": \"27017\", \"credentials\": [{\"db\": \"admin\", \"user\": \"admin\", \"password\": \"12345\"}], \"db\": \"icssa\", \"collection\": \"equipment\"}, \"index\": {\"name\": \"icssa\", \"type\": \"equipment\"}}"
注:(1) mongodb必须配置为复制集群;
(2) 我的mongodb的路由进程(mongos)的端口改为了27017;
(3) 需要配置mongodb用户名和密码(如果有),否则elasticsearch会保错:com.mongodb.MongoException: can't use 'local' database through mongos;
(4)如果要自定义mappings,必须在建立rmongodb river之前进行配置,如命令行运行curl -XPUT "http://localhost:9200/icssa?pretty" -d "{\"mappings\": {\"equipment\": {\"properties\": {\"name\": {\"type\": \"string\", \"index\": \"not_analyzed\"}}}}}" (表示icssa索引,equipment类型,字段name存储时不分词)。
查看同步结果
1. 浏览器打开http://localhost:9200/_plugin/head/,前提是你已经为elasticsearch安装了head插件
2. 同步结果形如:(本文测试环境:win7 x64,elasticsearch 1.4.4,mongodb 2.6.7,river-mongodb 2.0.6)