使用mongodb作为数据源搭建solr搜索引擎之创建同步索引实现
来源:互联网 发布:买完域名之后 编辑:程序博客网 时间:2024/06/10 00:47
以下程序使用solr作为搜索模块,搜索关键的第一步是创建索引。索引的产生我们一般是通过数据库中的数据作为数据源。但是数据库中的数据是时时变化的,数据库的数据变化了怎么同步索引到solr呢。以下程序就是解决这个问题。mongo数据库发生变化后通过使用github上开源的项目mongo-connector作为工具,该项目可以时时检测数据库的改变从而和solr配合实现同步索引的目的。
一:配置solr
使用的solr版本是solr 4.5.1
1)解压zip
2)将d:/solr-4.5.1/example/webapps下的solr.war拷贝到tomcat–>weapps中
3)新建文件夹d:/sorl_home,将d:/solr-4.5.1/example/solr目录拷贝至d:/sorl_home中
4)启动tomcat,此时tomcat会把solr.war进行解压,生成一个solr文件夹;停止tomcat,删除solr.war。
运行tomcat后访问:http://localhost:8080/solr
5)修改schema.xml配置文件中的id为_id:
二:配置mongodb
1)开启oplog,还需要在Mongo中启动一个replica set
我的MONGO_HOME为 D:\mongodb
目录树如下:
-rs (d)
|----db (d) mongo数据文件文件存放的目录
|----rs1 (d) rs1实例数据文件存放的目录
|----rs2 (d) rs2实例数据文件存放的目录
|----log (d) log文件存放的目录
|----rs1.log (f) rs1实例的log文件
|----rs2.log (f) rs2实例的log文件
|----mongod-rs1.bat rs1实例的启动脚本
|----mongod-rs2.bat rs2实例的启动脚本
mongod-rs1.bat内容如下:
D:\MongoDB\mongod --port 27001 --oplogSize 100 --dbpath db\rs1 --logpath log\rs1.log --replSet rs/127.0.0.1:27002 --journal
pause
mongod-rs2.bat内容如下:
D:\MongoDB\mongod --port 27002 --oplogSize 100 --dbpath db\rs2 --logpath log\rs2.log --replSet rs/127.0.0.1:27001 --journal
pause
2)执行两个脚本,启动两个mongod实例
3)但这时它们还没组成一个replica set,还需要进行配置,开启mongo,连上localhost:27001,也就是实例rs1
配置完成后:
查看rs.initiate(config) rs.status()
三:启动mongo-connector
github地址(https://github.com/10gen-labs/mongo-connector)
D:\项目资料\dht\mongo-connector-master\mongo-connector-master\mongo_connector>py
thon connector.py -m localhost:27001 -t http://localhost:8080/solr/collection1 -
o oplog_progress.txt -n test.foo -u _id -d ./doc_managers/solr_doc_manager.py
python connector.py -m localhost:27001 -t http://localhost:8080/solr/collection1 -o oplog_progress.txt -n torrentinfo-db.torrent_info -u _id -d ./doc_managers/solr_doc_manager.py
注意其中-n参数为要进行索引的数据库表名称
四:测试
在mongo中添加一条记录:
db.foo.insert({title:'hello world'})
在mongo-connector中会输出:
2014-07-26 23:18:42,881 - INFO - Finished 'http://localhost:8080/solr/collection
1/update/?commit=false' (post) with body 'u'<add><do' in 295.228 seconds.
在solr中进行查询即可:
- 使用mongodb作为数据源搭建solr搜索引擎之创建同步索引实现
- (搜索引擎之solr) sorl运行环境的搭建及从mysql中导入数据创建索引
- Solr(搜索引擎服务)和MongoDB通过mongodb-connector进行数据同步的解决方案,以及遇到的各种坑的总结(针对solr-5.3.x版本),mongodb和solr实现实时增量索引
- SOLR:APACHE版solr环境搭建及作为Hbase二级索引使用
- 使用 Hadoop,Nutch ,Hbase,Solr 搭建搜索引擎之Nutch2.2.1
- 使用mongo-connector实现mongoDB 和solr 同步数据
- 使用Solr作为辅助工具,在Reuters-21578测试集上创建一个简易的搜索引擎(一)
- 搜索引擎框架之Solr服务的搭建
- solr 搜索引擎搭建和使用 (一)
- Solr DIH以Mysql为数据源批量创建索引
- solr主从配置 自动实现索引同步
- 使用 Hadoop,Nutch ,Hbase,Solr 搭建搜索引擎之Hadoop1.2.1搭建
- 使用 Hadoop,Nutch ,Hbase,Solr 搭建搜索引擎之Hbase-0.94.27.搭建
- 使用 Hadoop,Nutch ,Hbase,Solr 搭建搜索引擎之搭建solr4.9.1
- 搜索引擎之---Apache solr的实现
- solr学习第七课----solr之数据库数据导入生成索引(DataImportHandler)-基于solr搜索引擎
- ireport使用javabean作为数据源的实现
- 全文索引----配置solr数据源
- OpenSSL Heartbleed漏洞(CVE-2014-0160)简要分析和检测
- windows下关闭指定端口服务,解决tomcat端口占用问题
- NOIP2009 潜伏者
- Shiro security限制登录尝试次数
- VC程序运行时导出资源、DLL、EXE
- 使用mongodb作为数据源搭建solr搜索引擎之创建同步索引实现
- Linux Shell中特殊参数
- 我的第一篇博客
- poj 3494 dp+单调栈
- 有关校园网无法开启wifi的简单解决方法
- 2015-03-07,海盗问题----google面试第八关水平
- 几种设置表单元素中文本输入框不可编辑的方法
- 6-06. 任务调度的合理性(25)
- Python中的日期操作: 取当月1号, 上月1号