将mysql导入到solr过程中出现的问题

本文详细介绍如何将MySQL数据库中的数据导入到Solr索引库中。包括搭建环境、配置文件修改及具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


首先要安装 solr 和tomcat 并将solr部署到tomcat上,以方便使用。
详细参考:   http://blog.youkuaiyun.com/zhangxtn/article/details/50468236

手动创建一个core:
详细请参考:http://blog.youkuaiyun.com/hll814/article/details/51321435

将mysql数据导入到solr中:

实际项目中,我们需要把已存在于数据库中的数据导入到solr索引库中,solr给我们提供了一个非常简便的方式,下面我们以mysql数据为例。

假设我们数据名叫database,数据表叫user,user里面有字段id、name、password;你的core下面的conf/schema.xml也做了相应的field(id,name,password)定义。

1、进入你的core(如collection1),新建一个目录lib。

2、拷贝mysql-connector-java-5.1.14.jar到新建的lib目录中。

3、修改对应的solrconfig.xml 文件,进去你的core (如collection1)配置文件solr_home/solr/collection1/conf/solrconfig.xml

  找到requestHandler标签的位置,加上以下代码

<!--  the dataimport requestHandler -->

        <requestHandler name= "/dataimport" class ="org.apache.solr.handler.dataimport.
DataImportHandler">
                <lst name= "defaults" >
<!-- db-data-config.xml 为连接数据库的配置文件,与第四步对应-->
               <str name= "config" >data-config.xml</str>
              </lst>
        </requestHandler>

3、从solr的解压文件目录中找到“/example/example-DIH/solr/db/conf”下的db-data-config.xml文件到你的core(如collection1)conf目录下,并更名为data-config.xml。

4、用编辑器打开data-config.xml的文件,清除里面的所有代码,复制以下代码:(注意以下中文注释在实际中应该删除,因为配置文件中不支持中文注释

<dataConfig>

<!--根据自己的数据库情况进行修改 mysql数据库中 batchSize必须为-1 否则会报异常--> 
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/database" user="root" password="root" batchSize="-1"/><document>

    <!-- name:自定义,但最好有意义;query:纯sql语句,此处查询用户表中的所有数据-->         
    <entity name="user" query="select * from user"> 
          <field column="id" name="id" />
          <!-- column:对应sql语句中的id,sql语句中如果你把它改成别名,此处填写别名; name:对应shema.xml配置文件中的字段id -->


         <field column="name" name="name" />
         <field column="password" name="password" />
     </entity>

 </document>

</dataConfig>

 

5、导入数据

打开http://localhost:8080/solr,界面如下:

53644

 

从下拉列表中选择collection1,再点击Dataimport连接,显示如下界面:

154401

 

勾选Commit、Optimize,下拉选择entity为user,点击Execute按钮,开始执行导入操作。

 

以上只是最简单的业务逻辑,复杂的业务逻辑需要<entity>嵌套

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值