Я настроил 2 ядра solr и попытался отобразить 2 разных класса через solrnet. Я сейчас использую Ninject, но хочу изменить, чтобы сказать Windsor, если это невозможно в Ninject. Я пытаюсь использовать AllPropertiesMappingManager для сопоставления. Поскольку мне нужно установить 2 разных уникальных ключа для двух разных ядер, я не знаю, как сделать то же самое с помощью AllPropertiesMappingManager.Как предоставить несколько диспетчеров сопоставления для многократных ядер solr в SolrNet
В настоящее время без использования менеджера Mapping Я получаю сообщение об ошибке: Документ отсутствует обязательное поле uniqueKey: TranscriptId
EDIT: Ошибка исчезает после того, как с помощью атрибута картирования
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");
Я думаю, вам нужно будет собрать все компоненты SolrNet, используя исходный код SolrNetModule в качестве ссылки. https://github.com/mausch/SolrNet/blob/master/Ninject.Integration.SolrNet/SolrNetModule.cs –
Я не знаю, как _IReadOnlyMappingManager_ может быть привязан к двум конкретным объектам и как метод _SetUniqueKey_ работает внутри. И я считаю, что эта проблема не является специфичной для интеграции Ninject, и кажется, что это важная функция для многоядерных процессоров SolrNet w.r.t. Если нет другого способа, я могу пойти с привязкой на основе атрибутов, которая работает нормально. – Kanda
это * * более вопрос Ninject, чем SolrNet. Для этого у SolrNet уже есть все, что вам нужно. Вам просто нужно переделать объекты (либо «вручную», либо с помощью Ninject). –