准备
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,然后把其全部数据获取,根据获取的数据 ,对索引库进行更新操作,可能是删除,添加,修改 。
数据库配置
注意红方框字段类型,次为solr判断增量更新所用。
定时任务:
crontab -e
添加
*/1 * * * * /usr/bin/curl -G -d "command=delta-import&clean=false&commit=true" "http://localhost:8983/solr/demo/dataimport"
测试
初始数据
修改数据后,等一分钟,内容变了证明成功