将数据库中的数据导入Solr索引库

在前面的文章中介绍了solr的一些配置和功能,这篇文件开始讲如何具体使用solr。


将数据库中的数据导入索引库

在大部分应用中,主要还是使用的是数据库中的数据,因此,这一步还是非常重要的。
现在目录结构如图所示:
这里写图片描述
在solr后台管理界面中
这里写图片描述
dataimport 负责将数据库中数据导入到索引库中,不过在导入之前,还需要一些相关配置。

1、需要的jar包
这里写图片描述

还需要mysql的驱动包

将这3个jar包 放入 E:\solr\solrhome\collection1\lib 下

2.在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 是指关于要导入的数据库的配置信息。

2、在E:\solr\solrhome\collection1\conf 下创建
data-config.xml 文件

<?xml version="1.0" encoding="UTF-8" ?>  
<dataConfig>   
<dataSource type="JdbcDataSource"   
          driver="com.mysql.jdbc.Driver"   
          url="jdbc:mysql://localhost:3306/lucene"   
          user="root"   
          password="root"/>   
<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>

数据库和账户密码根据自己的实际情况来写
可以看出,可以在

query="SELECT pid,name,catalog_name,price,description,picture FROM products "

指定自己索引库中要存的索引,

 <field column="pid" name="id"/> 
 <field column="name" name="product_name"/> 

可以配置索引中的域名 和 数据库字段的映射关系 ,其中column为字段名,name为域名。

3、在schema.xml中配置自定义域
首先要配置好ik分词器,不会的可以参考下面这篇文章
solr的安装与使用(二)

然后在后面增加自定义域

<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"/>

这里面name 和 data-config.xml中的 name一致。type使用ik分词器定义的type

 type="text_ik"

4、重启tomcat
选中collection1 点击dataimport
这里写图片描述
5、点击执行,就可以将数据中数据导入索引库了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值