1

我目前正在为我们公司实施 Solr 以替换我们的 GSA 系统,并且正在实施中。我正在使用 SolrNet 作为客户端访问代码,以通过 C# 与 Solr 交互。

现在我正在关注 wiki 并通过Startup.Init<XosContentDocument>("http://localhost:8080/solr/xosContent");. 然后我通过检索 solr 集合ServiceLocator.Current.GetInstance<ISolrOperations<XosContentDocument>>();

这目前有效(是的,我要将 url 移动到配置设置,因此它不直接在代码中)但是我对添加冗余后如何工作感到困惑。

我的计划是建立两个 Solr 实例,一个是主实例,第二个是从属实例,并在两者之间为读取请求提供一个内部可访问的域名(例如 solr.internal.whatever.com)负载平衡。但是,根据我对研究 Solr 复制的理解,我必须只对 master 进行写入,因为任何去往 slave 的写入都将在后续复制时被丢弃。

因此,我真的需要 2 个实例ISolrOperations<XosContentDocument>>,1 个指向查询负载均衡器的地址,另一个直接指向主 solr 实例的地址。由于我看到初始化和检索 an 的唯一方法ISolrOperations<T>是使用Startup.Init<T>(); ServiceLocator.Current.GetInstance<ISolrOperations<T>>,我如何实现这种双重性质?

4

1 回答 1

0

在主/从环境中使用 SolrNet 的过程与用于多核环境的过程相同。您可以在这里阅读更多相关信息:https ://code.google.com/p/solrnet/wiki/MultiCoreAccess

更准确地说,我这样做的方式是让一个核心指向主服务器进行索引,另一个指向其他从服务器进行查询。

于 2013-07-10T14:51:22.753 回答