1

我已经配置了 2 个 solr 内核并尝试通过 solrnet 映射到 2 个不同的类。我目前正在使用 Ninject,但如果在 Ninject 中无法使用,我愿意改为说 Windsor。我正在尝试使用 AllPropertiesMappingManager 进行映射。因为我需要为 2 个不同的内核设置 2 个不同的唯一键,所以我不知道如何使用 AllPropertiesMappingManager 来做同样的事情。

目前没有使用映射管理器我收到错误:文档缺少必需的唯一键字段: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");
4

1 回答 1

0

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

此外,如果您不使用映射管理器,您是否使用基于属性的映射来进行设置?因为您仍然需要设置 SolrMarkup 和 SolrTranscript 类之间的映射才能正常工作。

于 2013-06-05T11:01:39.250 回答