尚未实现首次同步mysql数据库的,请参考我的另一篇文章http://www.cnblogs.com/zhuwenjoyce/p/6512378.html(solr6.4.1搜索引擎同步mysql数据库)
 
过时的类
在solr6.4.1版本中,已无HttpSolrServer这个类,但是有SolrClient类,也无SolrServer这个类,取而代之的是EmbeddedSolrServer类,但即使EmbeddedSolrServer类也是继承自SolrClient类,所以网上所有能查到对这些类进行描述的文章都已过时。
话说就在这一两天研究solr期间,solr6.4.2版本已在3月6号发布了~~呃~~
看solr-solrj-6.4.1的源码,SolrClient从solr5.0版本开始代替SolrServer:
solr6.4.1在线API,可以查看所有的类:
 
solr管理界面增量导入mysql数据库
在浏览器管理界面,首先当然是选择一个core,我这里选择core3
 
选择core3下的Dataimport菜单
首先当然是校验db-data-config.xml配置文件是否正确,点击Reload按钮(如下图),当显示No information available时,表示配置文件无异常,当然这次不要选择full-import(全量导入),选择delta-import(增量导入),千万别选择Clean,因为会致使原有导入数据索引全部清空,然后只做更新部分的数据导入,如果此次只更新了一条数据,那么你的solr此core里就变成了仅有一条数据!
可以选择Commit,我现在对于这个选项的理解是:把内存中的索引文件fsync到磁盘,并创建一个index descriptor。这里比较耗费机器资源。这样即使jvm崩溃或者宕机,也不影响这部分索引。(参考http://blog.sina.com.cn/s/blog_6277623c0102v40x.html
可以选择Optimize,
optimize到底干了什么? 该如何使用?(参考http://blog.csdn.net/java_zys/article/details/52372635
查资料才发现,optimize其实是个很重量级的操作,执行optimize操作后solr会进行索引数据的合并来优化查询性能,如果索引数据很大,optimize则会花费很多的时间,如果你在批量提交文档后每次都进行optimize操作,无疑提交速度会越来越慢,最后甚至导致solr不再响应你的提交请求。另外,如果你的服务是主从模式,那么对master的optimize还会导致整个索引块同步到replica上,影响就更加可想而知了。optimize操作可以优化查询性能,所以还是有用的,可以在服务不忙的时候在solr自带的控制台手动执行optimize操作,也可以写个定时任务来完成。
 
增量导入注意事项
大家可以看到在上图中,entity标签里,query属性的select语句与deltaQuery属性的select语句是不一样的,差异在于多了一个where modify_date > '${dataimporter.last_index_time}'.
这是因为solr每次在全量导入时或者增量导入结束时,都会在solrhome\conf\dataimport.properties文件中为每一个entity更新一个导入时间标志,我本地截图如下:
这个配置文件里的属性对象可以在db-data-config.xml里以${}占位符方式填充数值。
重点1:所以在执行deltaQuery时,只会导入数据满足为:modify_date > '${dataimporter.last_index_time}',以此实现增量导入。否则就是全量导入!!!
重点2:在deltaQuery语句中,select字段一定要加上你想更新到索引的字段,否则默认不导入为索引!!
 
solr浏览器管理界面增加索引数据
solr也支持在浏览器管理界面增加索引数据,但此类增加并不会同步到mysql数据库中去,要使它同步,好像也是可以的,就是设置起来比较复杂,而且还需要考虑性能方面。
选择core3,点击Documents菜单:
在Document(s)输入框里输入要增加的索引数据(可同时增加多个),注意,这里的数据格式一定要与Document Type输入框里的数据类型保持一致,至于/update则来源于默认的solrconfig.xml配置文件,该文件的requestHandler标签定义了这些行为,比如/select /update 你也可以自定义一些其他标签。
执行Submit Document按钮之后,solr服务器响应结果如下:
status:0 表示索引插入操作执行成功。
QTime 的执行单位是毫秒ms。
 
其它以java代码使用solrJ-api接口也是可以导入索引的,这个另外文章再介绍。
 

solr6.4.1搜索引擎(3)增量同步mysql数据库的更多相关文章

  1. solr6.4.1搜索引擎(2)首次同步mysql数据库

    尚未成功启动solr的,请参考我的另一篇文章:http://www.cnblogs.com/zhuwenjoyce/p/6506359.html(solr6.4.1 搜索引擎启动eclipse启动) ...

  2. 使用canal增量同步mysql数据库信息到ElasticSearch

    本文介绍如何使用canal增量同步mysql数据库信息到ElasticSearch.(注意:是增量!!!) 1.简介 1.1 canal介绍 Canal是一个基于MySQL二进制日志的高性能数据同步系 ...

  3. solr6.4.1搜索引擎同步mysql数据库

    尚未成功启动solr的,请参考我的另一篇文章:http://www.cnblogs.com/zhuwenjoyce/p/6506359.html(solr6.4.1 搜索引擎启动eclipse启动) ...

  4. 10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)

    转载请出自出处:http://www.cnblogs.com/hd3013779515/ 1.创建MySQL数据 create database solr; use solr; DROP TABLE ...

  5. 使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch

    本文介绍如何使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch. 1.go-mysql-elasticsearch简介 go-mysql-elasti ...

  6. Logstash同步mysql数据库信息到ES

    @font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @fo ...

  7. 使用logstash同步mysql数据库信息到ElasticSearch

    本文介绍如何使用logstash同步mysql数据库信息到ElasticSearch. 1.准备工作 1.1 安装JDK 网上文章比较多,可以参考:https://www.dalaoyang.cn/a ...

  8. 如何通过 Docker 部署 Logstash 同步 Mysql 数据库数据到 ElasticSearch

    在开发过程中,我们经常会遇到对业务数据进行模糊搜索的需求,例如电商网站对于商品的搜索,以及内容网站对于内容的关键字检索等等.对于这些高级的搜索功能,显然数据库的 Like 是不合适的,通常我们采用 E ...

  9. Elasticsearch学习(2) windows环境下Elasticsearch同步mysql数据库

    在上一章中,我们已经能够通过spring boot来使用Elasticsearch,但是由于我们习惯性的将数据写入mysql,所以为了解决这个问题,Elasticsearch为我们提供了一个插件log ...

随机推荐

  1. linux是什么,有什么特点

    (1)Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件.应用程序和网络协议.它支持 ...

  2. VMware 虚拟机centos下链接网络配置

    1.点击Network Adapter 设置如下图所示,首先我们在虚拟机中将网络配置设置成NAT, 2.计算机右键->管理->服务和应用程序->服务,启动如下两个服务 3.在etc/ ...

  3. win10 ssd 卡顿

    http://www.pconline.com.cn/win10/739/7395324.html

  4. 垃圾收集器(GC)

    堆分区:所有new的对象都会存放在堆中      > 新生代(Young Generation):存放生命周期短的对象,具体还分为Eden和Survivor两个区,其中Survivor分为Fro ...

  5. LeetCode 33 搜索旋转排序数组

    题目: 假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 搜索一个给定的目标值,如果数组中存在这个 ...

  6. jsonp 实现原理

      Jsonp原理: 首先在客户端注册一个callback, 然后把callback的名字传给服务器. 此时,服务器先生成 json 数据.然后以 javascript 语法的方式,生成一个funct ...

  7. chmod语法

    chmod命令详细用法   指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 :  ...

  8. 剑指Offer 51. 构建乘积数组 (数组)

    题目描述 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1].不 ...

  9. 3.oracle与mysql的区别

    1.自动增长的数据类型处理     MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值.ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的 ...

  10. java mysql数据库链接与资源关闭

    /** * Created by Clear on 2018/8/11. * here provide the kind of connections from mysql database,and ...