03、Solr实战:数据库数据批量导入solr

一、实现功能

将数据库中数据,批量导入solr,构建全文检索。

二、环境

1、 CentOS6.4;

2、 CDH5.7.0;

3、 solr-4.10.3-cdh5.7.0;

三、步骤

1、 导入原始数据库;

*

2、 依据业务修改schema.xml;

vi solr-4.10.3-cdh5.7.0/solrhome/collection2/conf/schema.xml

针对具体的业务需要自定义一套Field,例如:

<!--product-->
<field name="product_name" type="text_ik" indexed="true" stored="true"/>
<field name="product_price"  type="float" indexed="true" stored="true"/>
<field name="product_description" type="text_ik" indexed="true" stored="false" />
<field name="product_picture" type="string" indexed="false" stored="true" />
<field name="product_catalog_name" type="string" indexed="true" stored="true" />

<field name="product_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="product_name" dest="product_keywords"/>
<copyField source="product_description" dest="product_keywords"/>

这些自定义域,要与数据库中对应字段对应,名称不一定一样,但是要有清晰的对应关系,如下

*

3、 使用dataimport插件批量导入,将dataimport插件依赖的jar包添加到实例solrcore的lib下(solrhome/collection1/lib)中;

(1)solr-4.10.3-cdh5.7.0/dist中的

solr-dataimporthandler-4.10.3-cdh5.7.0.jar
solr-dataimporthandler-extras-4.10.3-cdh5.7.0.jar

(2)mysql数据库连接驱动包

mysql-connector-java-5.1.27-bin.jar

4、 配置solrconfig.mxl文件,添加一个requestHandler;

   <requestHandler name="/dataimport" 
class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
     </lst>
  </requestHandler>

5、 在solrconfig.mxl同级目录下,创建data-config.xml,即数据导入配置文件;

(1)作用是:

-》连接数据库

-》SQL语句

-》构建数据库原始字段与solr新定义的域的对应关系

(2)具体内容

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource type="JdbcDataSource"   
		  driver="com.mysql.jdbc.Driver"   
		  url="jdbc:mysql://hadoop:3306/test"   
		  user="root"   
		  password="mysql密码"/>   
<document>   
	<entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">
		 <field column="pid" name="id"/> 
		 <field column="name" name="product_name"/> 
		 <field column="catalog_name" name="product_catalog_name"/> 
		 <field column="price" name="product_price"/> 
		 <field column="description" name="product_description"/> 
		 <field column="picture" name="product_picture"/> 
	</entity>   
</document>   

</dataConfig>

6、 重启tomcat;

四、测试

1、 进入solr;

*

2、 点击Execute执行,然后,等待结果;

*

3、 成功~;

版权声明:本文不是「本站」原创文章,版权归原作者所有 | 原文地址: