首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
cookie
php8
dockerfile
bytecode
js
metadata
scala
golang
netty
testing
callback
hashtable
lua
cpython
ascii
emoji
plugins
actionscrip
uri
nodejs
shell
rsa
timestamp
php
runtime
express
eval
main
include
datetime
require
import
vba
select
command
version
yaml
function
cPlusPlus
bit
header
typescript
heap
split
int
byte
php5
process
case
timezone
request
bitmap
email
iostream
tags
jar
bash
triggers
数组
blob
install
sum
audio
php7
grid
hashcode
tree
httpclient
heatmap
random
c语言
hashset
dagger
join
filter
dll
future
httprequest
const
当前位置:
开发笔记
>
编程语言
> 正文
三、solr增量更新
作者:拍友2502916683 | 来源:互联网 | 2023-05-31 19:05
原地址:http:www.cnblogs.comzhuwenjoycep6529448.html尚未实现首次同步mysql数据库的,请参考我的另一篇文章http:www.cnblogs.
原地址:http://www.cnblog
s.com/zhuwenjoyce/p/6529448.html
尚未实现首次同步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,可以查看所有的类:
http://lucene.apache.org/solr/6_4_1/solr-core/allclasses-noframe.html
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。
注意:增量更新需要写两个sql(deltaImportQuery、deltaQuery)
deltaImportQuery="select * where id='${dih.delta.id}'"
deltaQuery="select id from book_dept where modify_time > '${dih.last_index_time}'"
java
tomcat
solr
http
html
mysql
数据库
搜索
https
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
server
camel_使用Camel在来自不同来源的Solr中索引数据
camelApacheSolr是建立在Lucene之上的“流行的,快速的开源企业搜索平台”。为了进行搜索(并查找结果),通常需要从不同的源(例如内容管理 ...
[详细]
蜡笔小新 2023-10-15 11:20:39
server
解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ...
[详细]
蜡笔小新 2023-12-12 13:19:04
server
计算机网络初识及通信流程分析
本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ...
[详细]
蜡笔小新 2023-12-13 16:50:29
runtime
Tomcat安装与配置教程及常见问题解决方法
本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ...
[详细]
蜡笔小新 2023-12-09 07:28:32
netty
Netty拆包粘包问题解决 —— 特殊结束符
本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ...
[详细]
蜡笔小新 2023-12-14 18:02:45
netty
javascript – 概述在Firefox上无法正常工作
我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ...
[详细]
蜡笔小新 2023-12-14 10:20:38
plugins
微软发布OneNote for WordPress插件,支持一键从OneNote获取内容发布
微软今日发布了OneNoteforWordPress插件,该插件支持从OneNote一键获取 ...
[详细]
蜡笔小新 2023-12-13 18:35:09
php
解决Mac上无法使用localhost连接mysql的问题
本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ...
[详细]
蜡笔小新 2023-12-13 17:48:58
php
ABAP开发发送邮件程序的配置和代码整理
本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ...
[详细]
蜡笔小新 2023-12-13 15:50:17
php
java命令运行
Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ...
[详细]
蜡笔小新 2023-12-12 19:26:55
php
Linux下Kafka单机安装配置方法(实操成功)
本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ...
[详细]
蜡笔小新 2023-12-12 18:14:32
runtime
Java如何导入和导出Excel文件的方法和步骤详解
本文详细介绍了在SpringBoot中使用Java导入和导出Excel文件的方法和步骤,包括添加操作Excel的依赖、自定义注解等。文章还提供了示例代码,并将代码上传至GitHub供访问。 ...
[详细]
蜡笔小新 2023-12-09 20:27:00
runtime
项目运行环境配置及可行性分析
本文介绍了项目运行环境配置的要求,包括Jdk1.8、Tomcat7.0、Mysql、HBuilderX等工具的使用。同时对项目的技术可行性、操作可行性、经济可行性、时间可行性和法律可行性进行了分析。通过对数据库的设计和功能模块的设计,确保系统的完整性和安全性。在系统登录、系统功能模块、管理员功能模块等方面进行了详细的介绍和展示。最后提供了JAVA毕设帮助、指导、源码分享和调试部署的服务。 ...
[详细]
蜡笔小新 2023-12-09 09:02:14
php
输入www.xxx.com 和 直接输入xxx.com 都跳转到https://www.xxx.com
.htaccess文件 ...
[详细]
蜡笔小新 2023-10-17 22:35:44
main
Lucene系列四:Lucene提供的分词器、IKAnalyze中文分词器集成、扩展 IKAnalyzer的停用词和新词
一、Lucene提供的分词器StandardAnalyzer和SmartChineseAnalyzer1.新建一个测试Lucene提供的分词器的maven项目LuceneAnal ...
[详细]
蜡笔小新 2023-10-16 10:45:56
拍友2502916683
这个家伙很懒,什么也没留下!
Tags | 热门标签
cookie
php8
dockerfile
bytecode
js
metadata
scala
golang
netty
testing
callback
hashtable
lua
cpython
ascii
emoji
plugins
actionscrip
uri
nodejs
shell
rsa
timestamp
php
runtime
express
eval
main
include
datetime
RankList | 热门文章
1
java 子类、父类中静态代码块、字段,非静态代码块、字段以及构造函数的初始化顺序和次数...
2
html本地安装,pip 安装本地python包
3
PHP 并发编程之 MasterWorker 模式
4
Redis安装——在CentOS7下的安装
5
物化视图刷新原理与性能诊断
6
错误和异常继承树
7
开发笔记:史上最强TypeScript脚本介绍
8
PHP调试凶器Xdebug安装配置教程
9
有趣的算法题2
10
LINUX常用命令汇集
11
python如何循环sql语句_sql语句的for循环语句怎么写
12
What’s New in TiDB 4.0.0
13
Cocos2dx 3.x plist+png 做动画
14
【带宽估计module】接收侧 RemoteBitrateEstimatorAbsSendTime 1 初识
15
【python】pandas库中的merge方法连接两个表后输出为空
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有