引言
如果我们想把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 在页面上操作如下
到此关于批量导入数据的配置已经完成!