数据导入方式:

全量导入和增量导入:

query 是全量导入时,把你的数据中查到的数据全部导入,deltaImportQuery 和 deltaQuery 是增量导入数据所需要的两个查询语句。deltaImportQuery 后面有个过滤条件是数据库中的唯一标识id = '${dataimporter.delta.id}' 后面这个id 是solr索引库中的id ,固定不变的。deltaQuery 的话后面只需要加个数据库中更新时间的字段 例如updateDate>'${dataimporter.last_index_time}' 即可 ,我们每次导入数据的时候会在索引库的conf 目录下的dataimport.properties文件中记录时间点 也就是last_index_time=日期,就是为了方便做增量索引。只要你的数据库中有更新了某些字段或者添加了新的条数(前提是表中必须有个任意更新字段就要更新updateDate 这个字段),我们只要做个定时的增量索引,就可以做到每次增量时,都可保证solr查询到的数据都是最新的。

全量索引和增量索引的配置区别,首先全量索引会把数据库中所有数据进行索引的更新,增量索引只更新数据库中增删改查过的,要使用增量索引,数据库中要有一个标识字段来表示数据的变化,我们可以使用时间戳来表示,数据更新时时间戳也更新,这样,solr通过比较时间戳的变化来增量更新索引。

Solr导入mongodb数据实例

使用开源项目mongo-connector实现Solr的增量导入功能:

1、 配置mongodb的副本集群模式配置











配置启动mongodb副本集成功;

2、 安装mongo-connector

使用python安装:pip install 'mongo-connector[solr]'

3、solr配置 solrconfig.xml:

<requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />
solr配置managed-schema:
<uniqueKey>id</uniqueKey>
//修改为
<uniqueKey>_id</uniqueKey>
//添加
<field name="_id" type="string" indexed="true" stored="true" />
<field name="name" type="string" indexed="true" stored="true" />
<field name="area" type="string" indexed="true" stored="true"/>
//注释原有的
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />

4、配置好后,访问如下地址,存在JSON数据则成功:

http://127.0.0.1:20001/solr/test01/admin/luke?show=schema&wt=json

5、连接配置

进入mongo-connector目录输入命令:

mongo-connector --auto-commit-interval=0 -m 127.0.0.1:27111 -t http://127.0.0.1:20001/solr/test01 -d solr_doc_manager

6、mongo数据库中插入数据:

7、solr中查询数据:如下图表示mongodb数据导入solr成功

最新文章

  1. Angular.js实现折叠按钮的经典指令.
  2. 在windows下创建一个Mongo服务
  3. HDU 2955 Robberies (01背包,思路要转换一下,推荐!)
  4. [转载] 推荐的C++书籍以及阅读顺序
  5. USB HID报告及报告描述符简介
  6. 关键词:CodeSmith工具、Money类型、__UNKNOWN__
  7. 牢记负载均衡与HA,高性能是不同的方案。一般的CLUSTER只能实现其中的一种,而ORACLE的RAC可以有两种。
  8. JS浏览器关闭时清空cookie
  9. python 3.5 用户登录验证和输入三次密码锁定用户
  10. 浅谈 qmake 之 shadow build
  11. accp8.0转换教材第2章初识MySQL
  12. java反射获取类的类名、属性名、属性类型、方法、执行方法、构造函数
  13. WEB 性能优化导图
  14. Codeforces Round #131 Div1 B
  15. Android学习笔记五:四大组件(转)
  16. unity 代码有调整,重新导出 iOS 最烦的就是 覆盖导出后项目不能打开
  17. C++语言中的四种类型转换
  18. 搭建iSCSI共享IPSAN
  19. mybatis会对多参数方法进行特殊处理
  20. 本地更新代码同步至github仓库

热门文章

  1. Linux虚拟机--进入MySQL报错的解决办法
  2. 完美激活Pycharm2019.2.3专业版
  3. MapReduce之Job提交流程源码和切片源码分析
  4. Spring 梳理 - View - JSON and XML View
  5. SUSE Ceph 快速部署 - Storage6
  6. OKR群:为什么说每个程序员都应该有自己的个人OKR
  7. 品Spring:对@Resource注解的处理方法
  8. docker 更新后出现 error during connect
  9. win10下使用Linux命令
  10. B/S 端构建的基于 WebGL 3D 可视化档案馆管理系统