2

我们正在尝试使用来自 2 个不同数据库的数据构建 SOLR 索引,

看着那个http://wiki.apache.org/solr/DataImportHandler#Multiple_DataSources,它似乎应该是可能的,但我们遇到了问题。

 <dataConfig>
  <dataSource 
    name="ds-1"
    type="JdbcDataSource" 
    driver="Driver"
    url="jdbc_url1" 
    user="user1" 
    password="pass1"/>

<dataSource
    name="ds-2"
    type="JdbcDataSource" 
    driver="Driver"
    url="jdbc_url2" 
    user="user2" 
    password="pass2"/>

   <document>

 <entity name="entity1" datasource="ds-1" query="SELECT YYY  FROM TABLE">
      <field column="YYY" name="YYY"/>
    </entity>

 <entity name="entity2" datasource="ds-2" query="SELECT ZZZ FROM TABLE">
      <field column="ZZZ" name="ZZZ"/>
    </entity>

  </document>
</dataConfig>

尝试运行索引器时,它适用于第一个实体/查询/ds,然后失败org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: SELECT ZZZ FROM TABLE

似乎它正在尝试在 ds-1 上执行 query2 ...

我们还改变了数据源和/或实体定义的顺序,似乎它总是只能索引第一个。

我们做错了什么吗?我们对 SOLR 能做什么有错误的期望吗?

谢谢您的帮助

4

1 回答 1

4

我相信你的问题只是一个案例问题。datasource应该是dataSource,因为我记得 Solr XML 配置属性是区分大小写的。使用当前配置,dataSource不会实际定义,因此处理程序将使用已定义的第一个数据源(单数据源模式)。

您应该将其更改为:

<entity name="entity1" dataSource="ds-1" query="SELECT YYY FROM TABLE">
  <field column="YYY" name="YYY"/>
</entity>
于 2012-06-18T16:04:35.007 回答