尚未实现首次同步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. BOM&DOM

    BOM(浏览器对象模型) 1. location相关 . location.href 获取当前url . location.href="http://www.sogo.com" 跳 ...

  2. asp.net core2.1 bundleconfig.json合并压缩资源文件

    在asp.net core中则可以使用BuildBundlerMinifier来进行css,js的压缩合并 1.使用NuGet安装 BuildBundlerMinifier(也可以在vs中下载安装扩展 ...

  3. shell脚本结构

    echo $? 代表上一次命令的状态返回值,‘0’则代表为真<执行成功>,‘非零’则代表为假<执行失败>. shell脚本: <判断老男孩的年纪> [root@bo ...

  4. 四种常见的 POST 提交数据方式对应的content-type取值

    application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 app ...

  5. cerebro 配置

    cerebro 是 elastic search 的 监控平台 # Authentication auth = { type: ldap settings: { url = "ldap:// ...

  6. NVMe协议1.3c(一) 概述

    刚开始接触NVMe,对此理解不深,如有错误敬请指出 1.1概述 NVM ExpressTM(NVMeTM)接口允许主机软件与非易失性存储器子系统通信. 此接口针对企业和客户端固态驱动器进行了优化,通常 ...

  7. SQL-43 将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01。

    题目描述 将所有to_date为9999-01-01的全部更新为NULL,且 from_date更新为2001-01-01.CREATE TABLE IF NOT EXISTS titles_test ...

  8. UDP协议学习(转)

    reference: https://blog.csdn.net/s_lisheng/article/details/73538229                  https://blog.cs ...

  9. 容器的注入和container设计的思想——Injection Container 理解

    为什么会出现容器的注入? 容器:顾名思义,装东西的器物. 至于spring中bean,aop,ioc等一些都只是实现的方式:具体容器哪些值得我们借鉴,我个人觉得是封装的思想.将你一个独立的系统功能放到 ...

  10. noj二分查找

    二分查找: 要么左边,要么右边,哈哈哈哈 描述 给定一个单调递增的整数序列,问某个整数是否在序列中.   输入 第一行为一个整数n,表示序列中整数的个数:第二行为n(n不超过10000)个整数:第三行 ...