solr7.4 定时增量更新数据

准备
centos7 下solr7.4.0 配置mysql 数据源
可参考: https://blog.csdn.net/guyan0319/article/details/81203184
配置data-config.xml
此文的data-config.xml 内容如下:


<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
    <dataSource type="JdbcDataSource"
                driver="com.mysql.jdbc.Driver"
                url="jdbc:mysql://localhost:3306/solr"
                user="root"
                password="123456" batchSize="-1"/>
    <document>
        <entity name="good" pk="id" transformer="DateFormatTransformer"  query="select * from good"
          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}'">            <field column="id" name="id" />
            <field column="name" name="name_s" />
            <field column="age" name="age_s" />
            <field column="content" name="content_s" />
            <field column="mtime" name="mtime_s" />
        </entity>
    </document>
</dataConfig>

配置说明:
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,然后把其全部数据获取,根据获取的数据 ,对索引库进行更新操作,可能是删除,添加,修改 。

数据库配置

这里写图片描述

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

定时任务:

crontab -e

添加

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

测试

初始数据
这里写图片描述

修改数据后,等一分钟,内容变了证明成功
这里写图片描述

猜你喜欢

转载自blog.csdn.net/guyan0319/article/details/81393114