首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Java实现Solr数据端口(即RDBMS)?

问如何使用Java实现Solr数据端口(即RDBMS)?
EN

Stack Overflow用户
提问于 2015-07-16 06:22:19
回答 1查看 1.5K关注 0票数 1

我对Solr还是新手,实际上我尝试过用Solr手工进行数据库表索引,即创建一个新的数据-config.xml并从Solr webUI运行完整导入,成功地做到了这一点。

但是现在我需要在Java中做同样的事情。因此,我需要知道以下使用Java的情况:

  • 如何在Java中设置Solr数据源
  • 如何设置实体和查询
  • 如何运行完全导入

实际上,对于数据导入,我们编写了一个配置文件,如下所示

代码语言:javascript
复制
<?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中提供如下所示的配置文件信息

代码语言:javascript
复制
<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中提供的所有配置,即如下所示

代码语言:javascript
复制
 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.

这是我第三次发帖这个问题,但没有人给我确切的答案,或者只是告诉我,这是否可能?

EN

回答 1

Stack Overflow用户

发布于 2017-11-28 11:40:47

有点迟,但这是可能的,至少与Solr 7.1 (没有尝试以前的版本)。

如果您在http://yoursolrhostsolr/#/yourcore/dataimport//dataimport上检查,可以通过单击调试模式执行带有自定义数据配置的导入。

通过查看日志,您可以看到管理接口发送给solr的命令。它调用作为参数传递dataConfig.xml文件的dataConfig.xml处理程序。

因此,可以用SolrJ这样做:

代码语言:javascript
复制
ModifiableSolrParams params = new ModifiableSolrParams();
params.set("qt", "/dataimport");
params.set("command", "full-import");
params.set("dataConfig", <the data-import xml as string>);
solrClient.query(params);

通过传递一个dataConfig,dataImportHandler忽略了已配置的数据-import.xml.xml

对于那些使用Solr8.2.0的用户,链接是http://yoursolrhostsolr/#/yourcore/dataimport//import

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31446644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档