1.导入jar包
将相应数据导入jar包放入solr项目的WEN-INF目录下的lib文件夹中:
solr-dataimporthandler-6.4.2.jar
solr-dataimporthandler-extras-6.4.2.jar
相关的jar包可以去solr安装包中找到。将数据库的jar包放入tomcat的lib目录下:
mysql-connector-java-5.1.39.jar
2.修改配置文件
修改solr项目中solr/solrhome/core1/conf目录下的solrconfig.xml文件:
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">solr-data-config.xml</str>
</lst>
</requestHandler>
在相应目录下创建solr-data-config.xml文件,有此文件直接修改:
<?xml version="1.0" encoding="UTF-8"?>
<dataConfig>
<dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://192.168.10.135:3306/solrtest" user="root" password="root" batchSize="-1" >
</dataSource>
<document>
<entity name="news" pk="id" dataSource="source1"
query="select * from news"
deltaImportQuery="select * from news where id='${dih.delta.id}'"
deltaQuery="select * from news where updatetime> '${dataimporter.last_index_time}'">
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="author" name="author"/>
<field column="date" name="date"/>
<field column="content" name="content"/>
<field column="url" name="url"/>
<field column="vip" name="vip"/>
</entity>
</document>
</dataConfig>
其中last_index_time为每次索引时自动记录的时间。
3.建立数据库导入索引
数据库建立的数据表news中必须有一个updatetime的timestamp类型的字段,并且设置它为自更新,default设置为CURRENT_TIMESTAMP,这样每次修改某条数据时他的updatetime时间会自动更新。
全量更新索引(full-import) 增量更新索引(delta-import)
增量索引时去掉clean选项防止把原有数据清空,这样后面增加数据或者修改数据只需要进行增量更新就可以了。