紧接上篇ansj分词整合后,开始需要做索引。索引分增量和全量,可以直接连接数据库去做,也可以通过程序去做,以下实现连接数据库去做,相对来说比较简单。

1.修改multicore/new_core/conf/solrconfig.xml文件(上篇提到过的),在里面新增

data-config.xml

delta-data-config.xml

其中第一段是专门做全量索引的,第二段做增量索引(主要是靠DataImportHandler类实现)

2.新增multicore/new_core/conf/data-config.xml文件

url="jdbc:mysql://192.168.0.81:3306/new_mall?zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&useUnicode=true"

user="root" password="HyS_Db@2014"/>

query="select * from mall_goods limit ${dataimporter.request.length} offset ${dataimporter.request.offset}"

transformer="RegexTransformer">

dataSource不用说了,数据源配置来的

entity文档中的实体配置(注意pk="id" 不能随便改 ,需要和schema.xml中的id匹配,否则会报“ org.apache.solr.common.SolrException: Document is missing mandatory uniqueKey field: id”)

query 查询语句(可分页)

transformer 暂时不清楚干啥

field定义列名

3.新增multicore/new_core/conf/delta-data-config.xml文件

url="jdbc:mysql://192.168.0.81:3306/new_mall?zeroDateTimeBehavior=convertToNull&characterEncoding=utf8&useUnicode=true"

user="root" password="HyS_Db@2014"/>

query="select * from mall_goods"

deltaImportQuery="select * from mall_goods where goods_id='${dih.delta.id}'"

deltaQuery="select goods_id as id from mall_goods where update_date > '${dih.last_index_time}'"

transformer="RegexTransformer">

deltaQuery查询出有更改过的id

deltaImportQuery根据id查询

4.修改multicore/new_core/conf/schema.xml文件,定义field索引配置

注意上面选择一下text_ansj

5.solr的war包可能还缺少部分jar包,需要把mysql的jar,以及solr项目中dist目录下的jar包都放到solr的web站点中

6.开始运行

全量:http://solr.xxxx.com:8082/new_core/dataimport?command=full-import&commit=true&clean=false&offset=0&length=100000(其中0到100000的数据建立索引)

增量:http://solr.ehaoyao.com:8082/new_core/deltaimport?command=delta-import&entity=MallGoods

entity:是document下面的标签(data-config.xml)。使用这个参数可以有选择的执行一个或多个entity   。使用多个entity参数可以使得多个entity同时运行。如果不选择此参数那么所有的都会被运行。

clean:选择是否要在索引开始构建之前删除之前的索引,默认为true

commit:选择是否在索引完成之后提交。默认为true

optimize:是否在索引完成之后对索引进行优化。默认为true

debug:是否以调试模式运行,适用于交互式开发(interactive development mode)之中。

请注意,如果以调试模式运行,那么默认不会自动提交,请加参数“commit=true”

注意:在做增量索引的时候

很容易出现deltaQuery has no column to resolve to declared primary key pk='id'这种异常

主要是因为ID" must be used as it is in 'deltaQuery' select statement as "select ID from ..."

(if you different name for ID column in database, then use 'as' keyword in select statement. In my case I had 'studentID' as primary key in student table. So I used it as "select studentID as ID from ..."

--> The same applies to 'deletedPkQuery'

At present its working fine for me. Any updation in database is reflected in Solr as well.

所以,delta-data-config.xml文件需要注意一下pk的值

参考连接:

http://shiyanjun.cn/archives/444.html

http://blog.duteba.com/technology/article/70.htm

http://www.devnote.cn/article/89.html

http://qiaqia26.iteye.com/blog/1004996

http://zzstudy.offcn.com/archives/8104

http://blog.csdn.net/duck_genuine/article/details/5426897

------------------------------------------------------------------------------------------------------------------------------

最后补充:

有时候需要删除索引数据,可以这样删除

http://xxxx/new_core/update/?stream.body=*:*&stream.contentType=text/xml;charset=utf-8&commit=true

new_core 表示你要删除哪个核下面的索引

solr mysql 增量索引_solr中实现MySQL数据全量索引和增量索引相关推荐

  1. 基于Solr DIH实现MySQL表数据全量索引和增量索引

    实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单 ...

  2. solr mysql 增量索引_基于Solr DIH实现MySQL表数据全量索引和增量索引

    实现MySQL表数据全量索引和增量索引,基于Solr DIH组件实现起来比较简单,只需要重复使用Solr的DIH(Data Import Handler)组件,对data-config.xml进行简单 ...

  3. mysql is null走索引_mysql中IS NULL、IS NOT NULL不能走索引?

    不知道是啥原因也不知道啥时候, 江湖上流传着这么一个说法 mysql查询条件包含IS NULL.IS NOT NULL.!=.like %* .like %*%,不能使用索引查询,只能使用全表扫描. ...

  4. mysql全量备份、增量备份实现方法

    mysql全量备份.增量备份.开启mysql的logbin日志功能.在/etc/my.cnf文件中加入以下代码: ? 1 2 3 4 5 6 7 [mysqld] log-bin = "/h ...

  5. mysql增量备份具体步骤_记一次mysql全量备份、增量备份的学习过程

    增量备份依赖于全量备份,因此首先要有全量备份,在全量备份的基础上,添加增量备份. 为了方便操作,我们先来做些准备工作.在客户端直接输入mysql.mysqldump.mysqladmin.mysqlb ...

  6. mysql 数据增量备份_MySQL数据库之mysql全量备份、增量备份实现方法

    本文主要向大家介绍了MySQL数据库之mysql全量备份.增量备份实现方法 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. mysql全量备份.增量备份.开启mysql的logb ...

  7. xtrabackup 实现mysql的全量备份与增量备份

    Percona XtraBackup是世界上唯一一款开源的免费MySQL热备份软件,可以为InnoDB和XtraDB数据库执行非阻塞备份. 使用Percona XtraBackup,可以获得以下好处: ...

  8. mysql binlog增量备份脚本_实现mysqlldump+binlog日志全量备份和增量备份脚本

    实现mysqlldump+binlog日志全量备份和增量备份脚本 #!/bin/bash ####################################################### ...

  9. mysql复制一个字段值到另一个字段,MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下...

    点击查看MySQL怎么把表中一个字段数据复制到另外一个表的某个字段下具体信息 答:update b set tel =(select mobile from a where a.id=b.aid) 注 ...

最新文章

  1. CSS中一些语法规范和代码风格
  2. PMP-【第1章 引论】-2020-12-29(25页-34页)
  3. 电脑刚开机显示正在锁定计算机在怎么回事,电脑开机一直停留在诊断自动修复界面怎么回事...
  4. python极客项目编程_Python极客项目编程 ([美]Mahesh Venkitachalam) 中文pdf完整版
  5. TVS二极管电压6V,有哪些型号?
  6. 如何高效学习前端新知识,我推荐这些~
  7. Magicodes.IE 2.4发布
  8. 机器学习算法(8)——朴素贝叶斯、最小风险贝叶斯决策
  9. pyqt 把控制台信息显示到_(基础篇 01)在控制台创建对应的应用
  10. cron表达式在线测试
  11. Identity Server 4 原理和实战(完结)_----选看 OAuth 2.0 简介(上)
  12. set集合判断集合中是否有无元素_JAVA 集合
  13. 在.net平台下,执行命令行
  14. WPF中的相关属性含义
  15. ppt转换成pdf软件免费版
  16. 用C语言进行完数的判断(for循环和数组思想)
  17. ESP32-IDF开发实例-ADC电压采集
  18. iOS开发者账户注册/添加调试设备
  19. 用Python webdriver图书馆抢座自动预约的正确姿势
  20. VIM复制指令yank

热门文章

  1. 鸿蒙能和ios媲美吗,把鸿蒙打造成一个和iOS相媲美的操作系统需要多久?
  2. javaWeb登录验证码第一次验证失败,刷新验证码后验证成功问题
  3. 抗疫先锋 | 青藤云安全,守护安全最后一公里防线
  4. 计算机显卡的专业术语怎么说,电脑显卡知识你知多少?显卡知识普及
  5. LeetCode-589. N-ary Tree Preorder Traversal
  6. 程序猿的困惑:这一切都是技术惹的祸?
  7. ubuntu 软件包管理
  8. android googleplay 支付接入
  9. 【Web基础入门】一文搞懂HTML + CSS + JavaScript 简单了解
  10. 优麒麟服务器配置备忘