尚未实现首次同步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. Matlab:显(隐)式Euler和Richardson外推法变步长求解刚性问题

    一.显示Euler 函数文件:Euler.m function f=Euler(h,Y) f(1,1)=Y(1)+h*(0.01-(1+(Y(1)+1000)*(Y(1)+1))*(0.01+Y(1) ...

  2. wrk 使用记录及踩过的坑

    wrk是什么?https://github.com/wg/wrk wrk 是一个非常小巧高效的开源性能测试工具,支持lua脚本来创建复杂的测试场景.wrk 的一个很好的特性就是能用很少的线程压出很大的 ...

  3. 238. Product of Array Except Self除自身以外数组的乘积

    网址:https://leetcode.com/problems/product-of-array-except-self/ 参考:https://leetcode.com/problems/prod ...

  4. 微信支付---H5支付

    这里说的H5支付是指在微信外的浏览器打开H5商家的支付,切勿与公众号微信内支付混淆, 1.H5支付的开通流程 登陆微信商户平台页面:https://pay.weixin.qq.com/wiki/doc ...

  5. jquery promise (Deferred)

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. 实现首字母或拼音检索-sql语句方式

    create function [dbo].[fn_GetPY](@str nvarchar(max),@type int) returns nvarchar(max) as begin ) begi ...

  7. redis-cluster配置

    为什么要用redis-cluster 1.并发问题 redis官方生成可以达到 10万/每秒,每秒执行10万条命令假如业务需要每秒100万的命令执行呢? 2.数据量太大 一台服务器内存正常是16~25 ...

  8. SEH X86

    ( windows 提供的异常处理机制实际上只是一个简单的框架,一般情况下开发人员都不会直接用到.我们通常所用的异常处理(比如 C++ 的 throw.try.catch)都是编译器在系统提供的异常处 ...

  9. oracle监控资源管理器

    资源管理器的配置在一组dba视图显示,主要是如下视图: dba_rsrc_plans 显示计划和状态. dba_rsrc_plan_directives 显示计划指令 dba_rsrc_consume ...

  10. NotePad++配置使之支持jquery、html、css、javascript、php提示

    1.将以下文件复制到Notepad++\plugins\apis覆盖之前的xml文件 javascript.xml html.xml css.xml   2.打开notepad++设置>首选项& ...