如何使用Java API进行Solr数据导入(即从RDBMS导入?)>

问题描述 投票:1回答:1

我是Solr的新手,实际上我尝试在Solr中手动进行数据库表索引编制,即创建一个新的data-config.xml并从Solr webUI运行完全导入,成功做到了。

但是现在我需要在Java中做同样的事情。因此,我需要使用Java来了解以下内容:

  • 如何在Java api中设置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来完成所有操作,所以我需要从Java代码本身设置上面XML中给出的所有配置,即像下面的东西

 ModifiableSolrParams params = new ModifiableSolrParams();
    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")
    params.set("query","select * from emp"),etc.

这是我第三次发布此问题,但是没有人给我确切的解决方案,或者只是告诉我,有可能吗?

我是Solr的新手,实际上我尝试在Solr中手动尝试对数据库表建立索引,即创建一个新的data-config.xml并运行从Solr webUI进行的完全导入,成功做到了。但是现在我需要...

solr solrj solr4 solrcloud
1个回答
1
投票

稍晚一些的答案,但是有可能,至少在Solr 7.1中(没有尝试以前的版本)。

© www.soinside.com 2019 - 2024. All rights reserved.