SolrNet - 具有自定义连接的多个实例

时间:2012-06-21 17:28:56

标签: c# solr castle-windsor castle solrnet

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

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

这是我到目前为止所做的:

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

显然,IoC容器会因为这两种类型相同而引发错误。我尝试使用this article中的信息解决此问题,但Windsor工具不允许我传入自定义连接对象,只传递连接字符串。有什么想法吗?

2 个答案:

答案 0 :(得分:2)

看起来您仍在使用内置容器(Startup),该容器仅限于不同的文档类型。您发布的article包含Windsor的示例。

我对温莎不太熟悉,但您应该可以使用自定义ISolrConnection重新注册PostOnlyConnection

参考文献:

Explaination of SolrNet connection

答案 1 :(得分: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实例中的数据。