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

配置MongoDB复制集

部署一个用于测试和开发的复制集

部署复制集

1.为每个节点建立必要的数据文件夹: 

1 mkdir -p /srv/mongodb/rs0-0 /srv/mongodb/rs0-1 /srv/mongodb/rs0-2

2.通过下述命令来启动 mongod 实例:

第一个节点: 

mongod --port 27017 --dbpath /srv/mongodb/rs0-0 --replSet rs0 --smallfiles --oplogSize 128 --logappend --logpath /srv/mongodb/rs0-0/mongod.log &

第二个节点: 

mongod --port 27018 --dbpath /srv/mongodb/rs0-1 --replSet rs0 --smallfiles --oplogSize 128 --logappend --logpath /srv/mongodb/rs0-1/mongod.log &

第三个节点: 

mongod --port 27019 --dbpath /srv/mongodb/rs0-2 --replSet rs0 --smallfiles --oplogSize 128 --logappend --logpath /srv/mongodb/rs0-2/mongod.log &

3.我们可以通过下列命令来连接到第一个实例: 

mongo --port 27017

4.在 mongo 中使用 rs.initiate() 来初始化复制集。我们可以通过下列方式来设定复制集配置对象: 

rsconf = {   
          _id: "rs0",   
          members: [   
                      {   
                      _id: 0,   
                      host: "<hostname>:27017"   
                      }   
                    ]   
        }


5.将 <hostname> 替换为我们的主机名

rs.initiate( rsconf )

6.查看复制集配置

rs.conf()

7.使用 mongo 连接到 primary,并用过 rs.add() 命令来添加第二个和第三个 mongod 实例到复制集中。 将 <hostname> 替换为我们的主机名。

rs.add("<hostname>:27018") 
rs.add("<hostname>:27019")

8.通过 rs.status() 命令来检查复制集的状态。

安装Solr5.3

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

安装Python2.7

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

安装pip

参考:《在CentOS下安装pip》

安装mongo-connector 

方法一:使用pip安装

1 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 />

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 type="long" indexed="true" stored="true" />
<field type="string" indexed="true" stored="true"/>

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

启动mongo-connector

方法一:以命令行启动

nohup sudo mongo-connector -m localhost:27019 -t :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删除全部索引

: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

更多MongoDB相关内容可以看看以下的有用链接: 

MongoDB 3.0 正式版发布下载 

CentOS编译安装MongoDB

CentOS 编译安装 MongoDB与mongoDB的php扩展

CentOS 6 使用 yum 安装MongoDB及服务器端配置

Ubuntu 13.04下安装MongoDB2.4.3

MongoDB入门必读(概念与实战并重)

Ubunu 14.04下MongoDB的安装指南

《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]

Nagios监控MongoDB分片集群服务实战

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/d95e7267a12b00816ffc3922719c33f4.html