8

我有一个 SolrCloud 配置如下:探索 SolrCloud,不同之处在于我使用 Solr 4.0.0 Beta。很快的配置:

  • 默认端口上的 ZooKeeper2181
  • 在不同端口上运行的 3 个 Solr 实例

这仅用于测试目的。所需的配置是 3 个 ZooKeeper 实例(每个 Solr 实例一个)。我设法用 curl 命令索引了一些 XML 文件。

问题:

  1. 如何配置 DIH/收集?我设法更改了 solrconfig.xml(dataimport-handler 的配置),在 lib 中添加了用于 DB 连接的正确驱动程序,但在 solr admin 中我得到“抱歉,没有定义 dataimport-handler!” 可以在 zookeeper 中查看更改(我看到了 data_config.xml),在 solr 管理面板中我可以看到 solrconfig.xml 的更新版本。

  2. 对于 Ubuntu 12.04 LTS 在单台或多台机器上的 solrcloud 生产部署(使用 somthink 就像前面提到的所需配置)有什么好的教程吗?

任何意见,将不胜感激!提前致谢!

4

1 回答 1

5

通常,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>
于 2013-10-22T07:21:23.483 回答