Solr(四)DIH实现数据库数据全量导入到solr索引库

之前都介绍了怎么使用solr。

现在来看一下如何全量从mysql 导入到solr库中。

第一步:在数据库中创建表和字段(该步骤不详细解释,相信读者都会)

    我这边添加了三条新的记录。


第二步:配置solrconfig.xml

    打开solrhome的conf文件夹下(/home/solr/solrhome/collection1/conf)的配置文件solrconfig.xml,在最后面加入一个请求处理者配置:
<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

    在这个同级目录conf下新建一个配置文件data-config.xml,加入下面内容:
<dataConfig>  
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.157.1:3306/shop" user="root" password="123456" />
<document>  
        <entity name="productInfo" query="select goodsId, goodsName, goodsType from goods">  
            <field column="goodsId" name="id"/>   
            <field column="goodsName" name="goodsName"/>   
	    <field column="goodsType" name="goodsType"/>
        </entity>  
    </document>  
</dataConfig>
file:column是数据库的列名,name是schema.xml的索引字段名称。
file域配置数据库表的列名,记得还要到scheme.xml配置文件中配置的索引字段名称的映射。

第四步:配置schema.xml

在schema.xml文件中加入上面的2个字段的配置:
<field name="goodsName" type="string" indexed="true" stored="true" />   
<field name="goodsType" type="string" indexed="true" stored="true" />  
id这个索引字段是solr自己本身已经配置过的,所以在这里不需要再配,它可是必须的,是一个唯一主键。

第五步:加入JDBC驱动

将mysql的jdbc驱动jar包加入到solr项目的lib中(/home/solr/tomcat/webapps/solr/WEB-INF/lib)。

第六步:加入相关的jar包

到solr的解压包的dist目录(/root/solr-4.10.3/dist)下找到solr-dataimporthandler-4.5.1.jar和solr-dataimporthandler-extras-4.5.1.jar这两个jar包,同样放在solr项目的lib中(/home/solr/tomcat/webapps/solr/WEB-INF/lib)。

到此为止。DIH全量导入的工作全部完成。接下来就是开始测试。

重启tomcat,打开web页面。




我刚刚添加的那3条记录,就全部导进来了。

此文章为原创,转载需说明原出处,谢谢。


猜你喜欢

转载自blog.csdn.net/b_evan/article/details/79712501