我在我的应用程序中使用Solr.NET。在应用程序中,我需要连接到两个不同的solr服务器。这两个solr服务器都返回相同类型的文档,让我们调用文档类型Foo。
此外,我需要使用自定义连接,以便始终将所有查询POST到solr。
这是我到目前为止所做的:
StartUp.Init<Foo>(new PostOnlyConnection(connectionString1))
StartUp.Init<Foo>(new PostOnlyConnection(connectionString2))
显然,IoC容器会因为这两种类型相同而引发错误。我尝试使用this article中的信息解决此问题,但Windsor工具不允许我传入自定义连接对象,只传递连接字符串。有什么想法吗?
答案 0 :(得分:2)
看起来您仍在使用内置容器(Startup),该容器仅限于不同的文档类型。您发布的article包含Windsor的示例。
我对温莎不太熟悉,但您应该可以使用自定义ISolrConnection
重新注册PostOnlyConnection
。
参考文献:
答案 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实例中的数据。