我目前正在为我们公司实施 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>>
,我如何实现这种双重性质?