solr全量更新和增量更新,定时增量更新详解

前言:我使用的是solr7.7.2,这篇博客的内容是我看到网上其他人的文章和自己的多次试验的总结和见解,内容都比较通俗易懂,同时也有太多不足之处,希望大佬看到可以指出

一、全量更新

(1)什么是全量更新?

将数据库的数据导入到solr,就是数据更新,有两种更新方式,一种是全量更新,一种是增量更新。全量更新,顾名思义,即对solr中缓存的数据全部进行更新,对索引全部进行删除,重新创建,重新分词。
这里就不细讲了,如果你的数据可以成功导入到solr,那么这就是全量更新。

(2)全量更新的配置

【1】核心目录下创建一个data-config.xml文件:

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
	<dataSource
		type="JdbcDataSource"
		driver="com.mysql.jdbc.Driver"
		url="jdbc:mysql://127.0.0.1:3306/txws?useSSL=true"
		user= "root"
		password="1234"/> 
	<document>
		<entity name="product"
				query="select
					p.id,p.name,p.price,m.name merchant,c2.shortname province,c1.shortname city
					from 
					merchant m
					left join product p on m.id=p.merchant_id
					left join city c1 on m.city_id=c1.id
					left join city c2 on c1.pid=c2.id"
		>				
			<field column="id" name="id"/>
			<field column="name" name="name"/>
			<field column="price" name="price"/>
			<field column="merchant
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Solr是一个强大的搜索引擎,支持增量更新,可以通过Java代码实现Solr增量更新增量更新是指只更新发生了改变的数据,而不是全部数据。实现方式可以通过在每个数据上添加时间戳或者版本号,当数据发生改变时,只更新时间戳或者版本号发生了改变的数据。 下面是一个使用Java代码实现Solr增量更新的示例: ```java // 创建SolrClient对象 SolrClient solrClient = new HttpSolrClient.Builder("http://localhost:8983/solr/my_core").build(); // 创建SolrInputDocument对象 SolrInputDocument document = new SolrInputDocument(); document.addField("id", "1"); document.addField("name", "new name"); document.addField("timestamp", new Date()); // 创建UpdateRequest对象 UpdateRequest updateRequest = new UpdateRequest(); updateRequest.add(document); updateRequest.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true); // 执行增量更新操作 UpdateResponse response = updateRequest.process(solrClient); solrClient.close(); ``` 在这个示例中,我们创建了一个SolrClient对象,指定了Solr服务器的地址和core名称。然后创建了一个SolrInputDocument对象,添加了需要更新的数据字段,包括id、name和timestamp。接着,我们创建了一个UpdateRequest对象,并将SolrInputDocument对象添加到UpdateRequest对象中。最后,执行增量更新操作,并关闭SolrClient对象。 需要注意的是,Solr需要在schema.xml中配置时间戳或版本号字段,以支持增量更新。在上面的示例中,我们添加了一个名为timestamp的时间戳字段,Solr会根据这个字段来判断是否需要更新数据。 总的来说,使用Java代码实现Solr增量更新非常简单,只需要创建SolrClient对象、SolrInputDocument对象和UpdateRequest对象,然后执行增量更新操作即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值