使用mongodb作为数据源搭建solr搜索引擎之创建同步索引实现

以下程序使用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中进行查询即可:

时间: 2024-08-06 07:56:05

使用mongodb作为数据源搭建solr搜索引擎之创建同步索引实现的相关文章

JAVAEE——宜立方商城07:Linux上搭建Solr服务、数据库导入索引库、搜索功能的实现

1. 学习计划 1.Solr服务搭建 2.Solrj使用测试 3.把数据库中的数据导入索引库 4.搜索功能的实现 2. Solr服务搭建 2.1. Solr的环境 Solr是java开发. 需要安装jdk. 安装环境Linux. 需要安装Tomcat. 2.2. 搭建步骤 第一步:把solr 的压缩包上传到Linux系统 第二步:解压solr. 第三步:安装Tomcat,解压缩即可. 第四步:把solr部署到Tomcat下. 第五步:解压缩war包.启动Tomcat解压. tail -f ../

Solr搜索引擎 — 通过mysql配置数据源

一,准备数据库数据表结构 CREATE TABLE `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, `app_name` varchar(255) NOT NULL DEFAULT '', `score` decimal(10,5) NOT NULL DEFAULT '0.00000', `downLoadNum` int(10) NOT NULL DEFAULT '0', `top` int(10) NOT NULL DEFAULT '0', `ty

Mac自己搭建爬虫搜索引擎(nutch+elasticsearch是失败的尝试,改用scrapy+elasticsearch)

1.引言 项目需要做爬虫并能提供个性化信息检索及推送,发现各种爬虫框架.其中比较吸引的是这个: Nutch+MongoDB+ElasticSearch+Kibana 搭建搜索引擎 E文原文在:http://www.aossama.com/search-engine-with-apache-nutch-mongodb-and-elasticsearch/ 考虑用docker把系统搭建起来测试: docker来源如下: https://www.elastic.co/guide/en/elastics

下载快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词、项目实战)

Solr是一个高性能,采用Java开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎. 快速上手数据挖掘之solr搜索引擎高级教程(Solr集群.KI分词.项目实战),刚刚入手,转一注册文件,视频的确不错,可以先下载看看:http://pan.baidu.com/s/1jIdgtWM 密码:s1t3

MongoDB Replica Set搭建集群

MongoDB做集群,版本3.2官网推荐的集群方式Replica Set 准备服务器3台 两个standard节点(这两个节点直接可以互切primary secondary). 一个arbiter节点,它手中握着一张选票,决定上面两个standard节点中的哪一个可以成为primay. 机器名称和预承担的角色如下: test39 primary test41 secondary test42 arbiter 介绍一下涉及到的参数 --dbpath   数据文件路径 --logpath  日志文件

Lucene/Solr搜索引擎开发系列 - 第1章 Solr安装与部署(Jetty篇)

一.为何开博客写<Lucene/Solr搜索引擎开发系列>     本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/C++:现就职于一家大型国企所属电子商务公司,主要使用语言为Java,负责公司新一代搜索引擎的开发工作,故开此系列来总结自己在Lucene/Solr上的学习历程,同时,也希望能给予对搜索引擎开发有兴趣的朋友一些帮助和启发. 二.Lucene和Solr简要介绍     Lucene是apache软件基金

Lucene/Solr搜索引擎开发系列 - 第2章 Solr安装与部署(Tomcat篇)

一.安装环境 图1-1 Tomcat和Solr的版本     我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1-2 Tomcat安装目录     1.如图1-2所示,为Tomcat的解压目录: 图1-3 Tomcat首页     2.在目录E:\apache-tomcat-8.0.9\bin中,找到startup.bat文件,双击该文件,启动Tomcat服务器,等待几秒钟后,在浏览器中输入http:/

SOLR企业搜索平台 一 (搭建SOLR)

前提是已经安装了java的环境,环境变量的配置不做为讲解,网上也有大量资料.下面以linux为例来说明如何搭建好一个solr 1)首先下载solr,下载地址:http://mirror.bit.edu.cn/apache/lucene/solr/ 2)准备运行容器,我用的是tomcat-7.0.27. 也可以不用准备专门的容器,只需解压好solr,找到example文件夹,然后运行 start.jar.具体指令:java -jar start.jar.做应用的时候,不建议采用该方式.该方式内部包

python+flask+mongodb+whoosh实现自己的搜索引擎(一):目录

python+flask+jieba+mongodb+whoosh实现自己的搜索引擎 一.目录 二.基于python的爬虫 三.网页去燥,URL去重 四.基于mongodb的数据存储 五.基于whoosh的全文搜索 六.基于flask的web应用