Solr的全量更新以及增量更新

全量更新

在solr-data-config.xml文件中配置
<dataConfig>
<!--  配置数据源  -->
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" 
	url="jdbc:mysql://localhost:3306/solrdb?charactorEncoding=utf-8" 
	user="LCY" password="123123"/>
    <document>
    <!--  配置实体类  -->
        <entity name="user" query="SELECT * FROM city">
            <field column="id" name="id"/>
			<field column="name" name="name"/>
			<field column="pid" name="pid"/>
			<field column="shortname" name="shortname"/>
			<field column="leveltype" name="leveltype"/>
			<field column="citycode" name="citycode"/>
			<field column="zipcode" name="zipcode"/>
			<field column="lng" name="lng"/>
			<field column="lat" name="lat"/>
			<field column="pinyin" name="pinyin"/>
			</entity>
    </document>
</dataConfig>


在managed-schema中配置映射
   <field name="pid" type="text_ik" indexed="true" stored="true" />
   <field name="shortname" type="text_ik" indexed="true" stored="true" />
   <field name="leveltype" type="text_ik" indexed="true" stored="true" />
   <field name="citycode" type="text_ik" indexed="true" stored="true" />
   <field name="zipcode" type="text_ik" indexed="true" stored="true" />
   <field name="lng" type="text_ik" indexed="true" stored="true" />
   <field name="lat" type="text_ik" indexed="true" stored="true" />
   <field name="pinyin" type="text_ik" indexed="true" stored="true" />

在solr控制台中展示的效果:
在这张表中一共有3750条数据

增量更新

query:查询数据库表符合记录数据
deltaQuery:增量索引查询主键ID —> 注意这个只能返回ID字段
deltaImportQuery:增量索引查询导入数据
deletedPkQuery:增量索引删除主键ID查询 —> 注意这个只能返回ID字段

增量更新:我的理解是在涉及到添加、修改数据那数据库表中只需要额外的添加一个时间的字段在执行增量更新之后,只会将在更新之后的数据修改,而不会将之前的覆盖

在solr-data-config.xml文件中配置
<dataConfig>
  <!--  配置数据源  -->
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" 
	url="jdbc:mysql://localhost:3306/solrdb?charactorEncoding=utf-8" 
	user="LCY" password="123123"/>
    <document>
    <!--  配置实体类  -->
        <entity name="user" query="SELECT * FROM city" 
		deltaQuery="SELECT * FROM city WHERE city.LASTUPDATETIME='${dataimport.last_index_time}'"
		deltaImportQuery ="select * FROM city WHERE city.id='${dataimport.delta.id}'"
        deletedPkQuery = "select id FROM city"
		pk="id">
            <field column="id" name="id"/>
			<field column="name" name="name"/>
			<field column="pid" name="pid"/>
			<field column="shortname" name="shortname"/>
			<field column="leveltype" name="leveltype"/>
			<field column="citycode" name="citycode"/>
			<field column="zipcode" name="zipcode"/>
			<field column="lng" name="lng"/>
			<field column="lat" name="lat"/>
			<field column="pinyin" name="pinyin"/>
			<field column="timpstamp" name="timpstamp"/>
			<field column="isdelete" name="isdelete"/>
        </entity>
    </document>
</dataConfig>

在solr控制台中展示的效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值