如何在SolrNet中为solr多核提供多个映射管理器

时间:2013-06-05 06:20:21

标签: solrnet

我已经配置了2个solr核心并试图通过solrnet映射到2个不同的类。我目前正在使用Ninject,但是如果在Ninject中不可能,我愿意改变说温莎。我正在尝试使用AllPropertiesMappingManager进行映射。由于我需要为2个不同的核心设置2个不同的唯一键,我不知道如何使用AllPropertiesMappingManager进行相同的操作。

目前没有使用Mapping Manager我收到错误:Document缺少必需的uniqueKey字段:TranscriptId

编辑:使用基于属性的映射后错误消失

var solrServers = new SolrServers {
new SolrServerElement {
    Id = "markup",
    Url = solrMarkupUrl,
    DocumentType = typeof(SolrMarkup).AssemblyQualifiedName,
},
new SolrServerElement {
    Id = "transcript",
    Url = solrTranscriptUrl,
    DocumentType = typeof(SolrTranscript).AssemblyQualifiedName,
}
};

kernel = new StandardKernel();

kernel.Load(new SolrNetModule(solrServers));

SolrMarkupCore = kernel.Get<ISolrOperations<SolrMarkup>>("markup");
SolrTranscriptCore = kernel.Get<ISolrOperations<SolrTranscript>>("transcript");

1 个答案:

答案 0 :(得分:0)

您可以查看具有多个内核的Ninject的SolrNet单元测试 - NinjectMultiCoreFixtures.cs作为工作示例。

另外,如果您没有使用映射管理器,您是否使用基于Attribute的映射来设置?因为您仍然需要在SolrMarkup和SolrTranscript类之间设置映射才能正常工作。