全量更新
在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控制台中展示的效果:
增量更新
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控制台中展示的效果: