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

あなたの問題は単なるケースの問題だと思います。Solr XML 構成属性では大文字と小文字が区別されますdatasourcedataSource現在の構成でdataSourceは、実際には定義されていないため、ハンドラは最初に定義されたデータ ソースを使用します (単一データ ソース モード)。

次のように変更する必要があります。

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