通常,DIH 配置与您在 solrCloud 配置中使用单个 Solr 实例还是多个实例无关。DIH 会将数据写入当前实例的 Lucene 索引中,然后由 zooKeeper 将其分散到其他实例上。
确保您的 DIH 配置正确:
在 solrconfig.xml 中,加载了所有必需的库。这意味着两个 DIH 罐子:
<lib dir="../../../dist/" regex="solr-dataimporthandler-4.3.0.jar" />
<lib dir="../../../dist/" regex="solr-dataimporthandler-extras-4.3.0.jar" />
以及您可能需要的其他 jars(如数据库 JDBC 驱动程序等)。
仍然在 solrconfig.xml 中确保声明了 DIH 处理程序,如下所示:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
最后,您在 DIH 处理程序 (data-config.xml) 中声明的配置文件应该与 solrconfig.xml 位于相同的“conf”目录中,并且应该具有适当的内容,例如:
<dataConfig>
<dataSource type="JdbcDataSource" name="myDataSource" driver="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@someHost:1521:someDb" user="someUser" password="somePassword" batchSize="5000"/>
<document name="myDoc" >
<entity name="myDoc" dataSource="myDatasource" transformer="my.custom.Transformer" query="select col1, col2, col3 from table1 where whatever" />
</document>
</dataConfig>