如何使用Java从MySQL配置和运行Solr full dataimport?

时间:2015-07-08 09:55:53

标签: solr solrj solr4 solrcloud

我想使用Java在Solr中运行dataimport。我已经浏览了链接Solrj full-import not working,他们刚刚给出了如何从Java运行完整导入命令,在其他一些链接中我发现了如何查询Solr索引数据,但实际上我的要求是,对于数据导入我们写一个如下的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource" 
            driver="com.mysql.jdbc.Driver"
            url="jdbc:mysql://localhost:3306/test_db" 
            user="root" 
            password="cloudera"/>
<document>
  <entity name="emp"  
    query="select id,name from emp">
     <field column="id" name="id"/>
     <field column="name" name="name"/>       
  </entity>
</document>
</dataConfig>

以及我们将在solrconfig.xml中提供的配置文件信息,如下所示

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
        <lst name="defaults">
            <str name="config">db-data-config.xml</str>
        </lst>
</requestHandler> 

但是我的要求是,我不想像上面那样配置任何XML文件,只是我想从Java中完成所有这些,所以我需要设置我在上面的XML中给出的所有配置来自java代码本身,即下面的内容

params.set("Datasource","JdbcDataSource") 
params.set("driver","com.mysql.jdbc.Driver")
params.set("url","jdbc:mysql://localhost:3306/test_db")
params.set("user","cloudera")
params.set("password","cloudera"),etc.

1 个答案:

答案 0 :(得分:0)

在这里,如果设置另一个参数,则可以将整个XML作为字符串传递并执行配置:

params.set("dataConfig", <the data-import xml as string>);

我参加聚会很晚,但是如果有人在寻找解决类似问题的方法,这可能会有所帮助。

此外,我还要提及这篇How to do Solr Data import (i.e from RDBMS) using Java API?帖子。