实际项目中,我们需要把已存在于数据库中的数据导入到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、从solr的解压文件目录中找到“/example/example-DIH/solr/db/conf”下的db-data-config.xml文件到你的core(如collection1)conf目录下,并更名为data-config.xml。

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

<dataConfig>

<!--根据自己的数据库情况进行修改--> 
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/database" user="root" password="root"/><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>嵌套


本文转载:CSDN博客