和solr的N天N夜(三)--全量导入并索引数据

根据前面的步骤,solr已经与tomcat集成成功,并配置了中文分词器。然而数据库中的数据要怎么同步到solr索引库中呢?

一、建立数据库表

CREATE TABLE `image_info` (
  `id` varchar(32) NOT NULL,
  `src` text,
  `update_date` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

二、配置solrconfig.xml

打开Solr主目录的conf文件夹下(D:\Java\solr\collection1\conf)的配置文件solrconfig.xml,加入一个请求处理者配置:
<span style="white-space:pre">	</span><!-- 导入数据库配置 -->
      <requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">data-config.xml</str>
    </lst>
  </requestHandler>
在后面的数据导入中,请求的就是dataimport这个请求处理器。

三、新建data-config.xml

在同级目录下D:\Java\solrhome\collection1\conf)新建一个配置文件data-config.xml,加入下面内容:
<dataConfig>  
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/dbname" user="root" password="***" /> 
    <document>  
        <entity name="imageInfo" query="select id,src,key_info from image_info">  
            <field column="id" name="id"/>   
            <field column="src" name="src"/>   
            <field column="key_info" name="key_info"/>   
        </entity>  
    </document>  
</dataConfig>

filed域配置数据库表的列名,到scheme.xml配置文件中配置的的索引字段名称的映射。
entity节点中的name属性需唯一,如果存在多个表需要建立索引库,则通过该属性区分。

四、配置schema.xml

   <!--iamge_info表字段-->
   <field name="src" type="string" indexed="true" stored="true"/>
   <field name="key_info" type="textMaxWord" indexed="true" stored="true"/>
因为id字段已经配置了,所以不需要我们加了,它可是必须的,是一个唯一主键。

五、加入jdbc驱动

因为solr需要通过jdbc连接到数据库进行数据同步,所以需在solr工程的lib目录下添加jdbc驱动。

六、加入同步数据的jar包

到solr解压包下的dist目录下solr-dataimporthandler-5.4.1.jar和solr-dataimporthandler-extras-5.4.1.jar这两个jar包,同样放到部署到solr的lib目录下。
启动Tomcat,在浏览器中输入: http://localhost:8080/solr/dataimport?command=full-import 进行全量导入。


  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值