Mongo-connector集成MongoDB到Solr实现增量索引

Mongo-connector集成MongoDB到Solr实现增量索引

配置MongoDB复制集

参考:《部署一个用于测试和开发的复制集》

安装Solr5.3

参考:《在CentOS下安装Solr5.3》

安装Python2.7

参考:《在CentOS下安装Python2.7》

安装pip

参考:《在CentOS下安装pip》

安装mongo-connector


方法一:使用pip安装

pip install mongo-connector

安装到了ython的默认包目录下:

/usr/local/lib/python2.7/site-packages

方法二:安装为服务

1. 去https://github.com/mongodb-labs/mongo-connector/archive/master.zip下载mongo-connector-master.zip。

2. 解压缩进入目录。

unzip mongo-connector-master.zip
cd mongo-connector-master

3. 编辑配置文件。

vi config.json

4. 安装为服务。

python setup.py install_service

在/etc/init.d下创建了mongo-connector服务,并拷贝config.json文件到/etc/mongo-connector.json。

卸载mongo-connector服务

python setup.py uninstall_service

它将移除/etc/init.d/mongo-connector和/etc/mongo-connector.json

查看服务状态

service mongo-connector status

配置Solr


在Solr数据目录/data/solr/data/下有Solr配置文件solr.xml

创建core

su - solr -c "/usr/local/solr/solr/bin/solr create -c card -n data_driven_schema_configs"

生成了文件夹/data/solr/data/card,在/data/solr/data/card/conf目录下是card的配置目录,可以配置同义词、停止词。

配置solrconfig.xml

1. 确保启用了LukeRequestHandler

以下行应用出现在solrconfig.xml文件中。

<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />

2. 配置硬提交(刷新到硬盘上的频率)和软提交(提交到内存中的频率)

在solrconfig.xml文件中配置<autoCommit>和<autoSoftCommit>

<autoCommit>
<maxTime>300000</maxTime>
<maxDocs>10000</maxDocs>
<openSearcher>true</openSearcher>
</autoCommit>
<!-- softAutoCommit is like autoCommit except it causes a
‘soft‘ commit which only ensures that changes are visible
but does not ensure that data is synced to disk. This is
faster and more near-realtime friendly than a hard commit.
-->
<autoSoftCommit>
<maxDocs>1000</maxDocs>
<maxTime>60000</maxTime>
</autoSoftCommit>

配置schema.xml

1. Mongo Connector存储元数据在每个文档中帮助处理回滚。为了支持这些数据,你需要添加如下信息到你的schema.xml中:

<field name="_ts" type="long" indexed="true" stored="true" />
<field name="ns" type="string" indexed="true" stored="true"/>

2. 在schema.xml中配置配置<uniqueKey>、<field>

启动mongo-connector


方法一:以命令行启动

nohup sudo mongo-connector -m localhost:27019 -t http://localhost:8983/solr/card -o oplog_progress.txt -n example.card -u _id -d solr_doc_manager > mongo-connector.out 2>&1

方法二:以服务启动

service mongo-connector start

Solr删除全部索引


http://192.168.11.52:8983/solr/card/update/?stream.body=%3Cdelete%3E%3Cquery%3E*:*%3C/query%3E%3C/delete%3E&stream.contentType=text/xml;charset=utf-8&commit=true

参考:

http://blog.mongodb.org/post/29127828146/introducing-mongo-connector

https://github.com/mongodb-labs/mongo-connector/wiki/Installation

https://github.com/mongodb-labs/mongo-connector/wiki/Usage-with-Solr

https://loutilities.wordpress.com/2012/11/26/complementing-mongodb-with-real-time-solr-search/

时间: 2024-12-18 01:19:22

Mongo-connector集成MongoDB到Solr实现增量索引的相关文章

solr 实现增量索引

在上文中 ,solr配置 以及导入数据库都已经成功的前提下 ,我们 来实现solr的增量索引功能. 详细步骤: 1,在数据库中的 表中添加一个 date类型的字段 ,我的  字段名为  createTime: 2,修改solr-date-config.xml文件,如下 <dataConfig><dataSource password="1234" user="sa" url="jdbc:sqlserver://127.0.0.1:1433

solr与.net系列课程(六)solr定时增量索引与安全

 solr与.net系列课程(六)solr定时增量索引与安全 solr增量索引的方式,就是一个Http请求,但是这样的请求显然不能满足要求,我们需要的是一个自动的增量索引,solr官方提供了一个定时器实例,来完成增量索引, 首先下载 apache-solr-dataimportscheduler-1.0.jar,下载地址:http://solr-dataimport-scheduler.googlecode.com/files/apache-solr-dataimportscheduler-1.

solr定时增量索引

当数据库的数据发生改变的时候,我们不想手动的去重新添加数据库的数据导solr索引库中,所以用到定时添加索引.增删改的数据.现在写的这些都是基于我之前做的一步步到这来的. 将solr/dist下的solr-dataimporthandler-4.8.1.jar.solr-dataimporthandler-extras-4.8.1.jar这两个包拷贝到tomcat/webapps/solr/lib下,还有下载apache-solr-dataimportscheduler.jar也拷贝到tomcat

转:使用Mongo Connector和Elasticsearch实现模糊匹配

原文来自于:http://www.csdn.net/article/2014-09-01/2821485-how-to-perform-fuzzy-matching-with-mongo-connector 摘要:短短两年,Mongo Connector取得了突破性的进展,用户已经可以通过它完成连接器两边的同步更新.而基于这个特性,其他工具针对MongoDB内存储文件的实时操作也成为可能. [编者按]本篇博文作者Luke Lovett是MongoDB公司的Java工程师,他展示了Mongo Co

SOLR增量索引--删除业务、定时增量索引

Ok,我又来写SOLR的内容了,昨天做了修改和增加的增量索引,今天来说说关于删除的增量索引以及定时更新增量索引,废话不多说,下面进入正文. 一.增量索引之删除 昨天已经说过,增量索引其实就是SOLR对上次做过(增量或者全量)索引之后到这次做索引之间的这段时间数据库发生变化的数据进行创建索引,昨天我们说了增加一条数据或者修改一条数据之后创建增量索引,现在来说删除数据的增量索引. 其实这里所说的删除是假删除,什么意思呢?就是并不是说在数据库中把某些数据给彻底删除掉,而是说给你不想创建索引的数据一个标

Spring集成MongoDB及操作

1.Spring集成MongoDB的集成配置 若使用Maven项目,则添加包依赖. <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>1.2.0.RELEASE</version> </dependency> 在Spring配置文件中对Mon

MongoDB的使用学习之(五)Spring集成MongoDB

1.介绍 之前在很多地方一直见到这个Spring Data 神奇的东西,不知道是啥东东,终于,今天来简单的探个究竟,底下是我从网上整理来的-- 首先,解释下为啥要使用Spring来集成MongoDB:因为mongoDB的java驱动程序使用起来较为繁琐,特别是处理关联关系多.层次深的情况时.需要书写大量的构造DBObject的代码.遇到这样的问题第一个肯定想到"万金油"spring.spring data对很多nosql产品都有支持,比如redis.hbase.mongodb.neo4

Spring Boot集成mongodb数据库

一.认识mongodbMongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引.二.Spring boot项目集成mongodb1.添加mongodb依赖 <dependency> <group

集成Nutch/Hbase/Solr构建搜索引擎之二:内容分析

请先参见"集成Nutch/Hbase/Solr构建搜索引擎之一:安装及运行",搭建测试环境 http://blog.csdn.net/jediael_lu/article/details/37329731 一.被索引的域 Schema.xml 在使用solr对Nutch抓取到的网页进行索引时,schema.xml被改变成以下内容. 文件中指定了哪些域被索引.存储等内容. <?xml version="1.0" encoding="UTF-8"