我已经配置了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");
答案 0 :(得分:0)
您可以查看具有多个内核的Ninject的SolrNet单元测试 - NinjectMultiCoreFixtures.cs作为工作示例。
另外,如果您没有使用映射管理器,您是否使用基于Attribute的映射来设置?因为您仍然需要在SolrMarkup和SolrTranscript类之间设置映射才能正常工作。