solr4 mysql自动更新_solr7.4 定时增量更新数据-Go语言中文社区

准备

centos7 下solr7.4.0 配置mysql 数据源

可参考: https://blog.csdn.net/guyan0319/article/details/81203184

配置data-config.xml

此文的data-config.xml 内容如下:

driver="com.mysql.jdbc.Driver"

url="jdbc:mysql://localhost:3306/solr"

user="root"

password="123456" batchSize="-1"/>

deletedPkQuery="SELECT id FROM good where state =0 " deltaImportQuery="select * from good WHERE id = '${dih.delta.id}'" deltaQuery="select * f

rom good where mtime> '${dataimporter.last_index_time}'">

配置说明:

driver(必需的):jdbc驱动名称

url(必需的):jdbc链接

user:用户名

password:密码

字段配置:

column:数据库查询列名称

name:Schema.xml中的字段

doucment节点配置

document节点用来配置如何从数据库导入数据构建document对象,主要有一个或多个即实体组成。有如下属性:

name:实体名称

processor:只有当datasource不是RDBMS时才是必需的。默认值是SqlEntityProcessor

transformer:转换器将会被应用到这个entity上,详情请浏览transformer部分。

pk:entity的主键,它是可选的,但使用“增量导入”的时候是必需。它跟schema.xml中定义的uniqueKey没有必然的联系,但它们可以相同。

rootEntity:默认情况下,document元素下就是根实体了,如果没有根实体的话,直接在实体下面的实体将会被看做跟实体。对于根实体对应的数据库中返回的数据的每一行,solr都将生成一个document。

dataSource:dataSource名称

query:获取全部数据的SQL

deltaQuery:此查询只对增量导入起作用,而且只能返回ID值(增加,修改,删除操作)

parentDeltaQuery:获取父Entity的pk的SQL

deletedPkQuery:此操作值查询那些数据库里伪删除的数据的ID(即state标识为0的数据) solr通过它来删除索引里面对应的数据

deltaImportQuery:此查询是获取deltaQuery和deletedPkQuery的ID,然后把其全部数据获取,根据获取的数据 ,对索引库进行更新操作,可能是删除,添加,修改 。

数据库配置

26c7f62266ac9d54a95140b4ce75834b.png

注意红方框字段类型,次为solr判断增量更新所用。

定时任务:

crontab -e

添加

*/1 * * * * /usr/bin/curl -G -d "command=delta-import&clean=false&commit=true" "http://localhost:8983/solr/demo/dataimport"

测试

初始数据

35c6030b3970b69b4595ab2b8eb612f0.png

修改数据后,等一分钟,内容变了证明成功

c19b581c82659a89e912cf0421884a6d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值