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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介:

配置MongoDB复制集

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


安装Solr5.3

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


安装Python2.7

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


安装pip

参考:《在CentOS下安装pip》


安装mongo-connector


方法一:使用pip安装

1
pip  install  mongo-connector

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

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


方法二:安装为服务

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

2. 解压缩进入目录。

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

3. 编辑配置文件。

1
vi  config.json

4. 安装为服务。

1
python setup.py install_service

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


卸载mongo-connector服务

1
python setup.py uninstall_service

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


查看服务状态

1
service mongo-connector status


配置Solr


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


创建core

1
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文件中。

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<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中:

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


方法一:以命令行启动

1
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


方法二:以服务启动

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/


















本文转自UltraSQL51CTO博客,原文链接:http://blog.51cto.com/ultrasql/1696083 ,如需转载请自行联系原作者
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
2月前
|
存储 NoSQL MongoDB
掌握MongoDB索引优化策略:提升查询效率的关键
在数据库性能调优中,索引是提升查询效率的利器。本文将带你深入了解MongoDB索引的内部工作原理,探讨索引对查询性能的影响,并通过实际案例指导如何针对不同的查询模式建立有效的索引。不仅将涵盖单一字段索引,还会探讨复合索引的使用,以及如何通过分析查询模式和执行计划来优化索引,最终实现查询性能的最大化。
|
4月前
|
监控 NoSQL MongoDB
MongoDB数据库的索引管理技巧
【8月更文挑战第20天】MongoDB数据库的索引管理技巧
76 1
|
5月前
|
NoSQL Java API
MongoDB 强制使用索引 hint
MongoDB 强制使用索引 hint
148 3
|
22天前
|
存储 NoSQL 关系型数据库
MongoDB索引知识
MongoDB索引知识
25 1
MongoDB索引知识
|
29天前
|
存储 NoSQL MongoDB
MongoDB 索引限制
10月更文挑战第22天
28 2
|
29天前
|
NoSQL MongoDB 索引
MongoDB 高级索引
10月更文挑战第22天
28 2
|
2月前
|
NoSQL MongoDB 索引
MongoDB 覆盖索引查询
10月更文挑战第21天
26 1
|
2月前
|
存储 NoSQL MongoDB
MongoDB 索引
MongoDB 索引
30 3
|
3月前
|
存储 NoSQL 关系型数据库
MongoDB中的索引操作总结
这篇文章总结了MongoDB中索引的概念、创建方法、常见操作指令、限制以及索引对查询效率的影响。
45 2
|
4月前
|
存储 NoSQL 关系型数据库
4-MongoDB索引知识
MongoDB通过索引提升查询效率,避免全集合扫描。索引采用B树结构存储部分数据集,按字段值排序,支持快速匹配与排序查询。主要类型包括:单字段索引,支持升序/降序;复合索引,字段顺序影响排序逻辑;地理空间索引,适用于坐标数据查询;文本索引,用于搜索字符串内容;哈希索引,用于散列分片,仅支持等值查询。更多详情参见官方文档:[MongoDB索引指南](https://docs.mongodb.com/manual/indexes/)。