1

我在我的应用程序中使用 Solr.NET。在应用程序中,我需要连接到两个不同的 solr 服务器。这两个 solr 服务器都返回相同类型的文档,我们将文档类型称为 Foo。

此外,我需要使用自定义连接,以便始终将所有查询发布到 solr。

这是我到目前为止所拥有的:

StartUp.Init<Foo>(new PostOnlyConnection(connectionString1))
StartUp.Init<Foo>(new PostOnlyConnection(connectionString2))

显然,IoC 容器对此会抛出错误,因为这两种类型是相同的。我尝试使用本文中的信息解决此问题,但 Windsor 工具不允许我传入自定义连接对象,只能传入连接字符串。有任何想法吗?

4

2 回答 2

2

看起来您仍在使用仅限于不同文档类型的内置容器(启动)。您发布的文章包含温莎的示例。

我对 Windsor 不太熟悉,但您应该可以ISolrConnection使用您的 custom重新注册PostOnlyConnection

参考:

SolrNet 连接说明

于 2012-06-22T15:53:59.007 回答
0

如果 Windsor 选项不起作用,您可以创建 2 个继承自同一个类的类,以初始化具有不同类型的 solr 连接。

class Foo {}
class FooA : Foo {}
class FooB : Foo {}

StartUp.Init<FooA>(new PostOnlyConnection(connectionString1))
StartUp.Init<FooB>(new PostOnlyConnection(connectionString2))

我有超过 1 个核心,这是我使用的解决方案。它带来了一些挑战,这意味着您将需要一些模板方法来查询每个 solr 实例中的数据。

于 2012-06-26T19:59:11.030 回答