引言
如果我们想把mysql中的数据直接导入到solr中,需要借助dataimport插件来完成,下面看看基本配置
第一步:把dataimport插件依赖的jar包添加到solrcore(collection1\lib)中
关于两个dataimportHandle包可以在solr-4.10.3/dist下面复制,因为我们需要连接mysql所以需要mysql驱动包,lib文件夹需要自己手动创建
第二步:配置solrconfig.xml文件,添加一个requestHandler
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
第三步:创建一个data-config.xml保存到collection1\conf\目录下面
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/taotao"
user="sa"
password="123456"/>
<document>
<entity name="item" query="SELECT id,title,sell_point,price,num,image FROM tb_item">
<field column="id" name="id"/>
<field column="title" name="item_title"/>
<field column="sell_point" name="item_sell_point"/>
<field column="price" name="item_price"/>
<field column="num" name="item_num"/>
<field column="image" name="item_image"/>
</entity>
</document>
</dataConfig>
第四步:在schema.xml中配置业务域
<!-- IKAnalyzer -->
<fieldType name="text_ik" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
<!-- IKAnalyzer field -->
<field name="title_ik" type="text_ik" indexed="true" stored="true"/>
<field name="content_ik" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<!-- item 上面是中文分析器的配置 从下面开始属于业务域的配置-->
<field name="item_title" type="text_ik" indexed="true" stored="true"/>
<field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
<field name="item_price" type="float" indexed="true" stored="true"/>
<field name="item_num" type="int" indexed="true" stored="true"/>
<field name="item_image" type="string" indexed="false" stored="true"/>
<field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="item_title" dest="item_keywords"/>
<copyField source="item_sell_point" dest="item_keywords"/>
重启tomcat 在页面上操作如下
到此关于批量导入数据的配置已经完成!