Я использую SOLRNET и использую функцию SOLR MoreLikeThis для получения документов, аналогичных возвращаемым.Мой код выглядит примерно так (в данном случае я выполняю поиск по идентификатору, так как уже знаю конкретный документ, который хочу загрузить):
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<MyDocument>>();
var queryOptions = new QueryOptions()
{
MoreLikeThis = new MoreLikeThisParameters(new[] { "text" })
{
MinDocFreq = 1, // minimum document frequency
MinTermFreq = 1, // minimum term frequency
},
};
var document = solr.Query(new SolrQuery(string.Concat("id:", id)),queryOptions);
Когда я выполняю свой запрос, все работает точнокак следует, и мой документ извлекается как тип MyDocument.Я могу перебирать словарь SimilarResults в SOLRNET и видеть, что подобные документы действительно возвращаются.Что мне интересно, так это то, что в моем классе MyDocument есть собственный способ сопоставить поле, чтобы оно заполнялось коллекцией типа MyDocument, представляющей аналогичные возвращаемые документы.
Если мне нужно перебирать подобные документы один за другим, это нормально, но я предполагаю, что есть простой способ сделать это.Я попробовал очевидные приемы, такие как сопоставление с использованием атрибута в моем классе MyDocument
[SolrField("moreLikeThis")]
public IDictionary<string,IList<MyDocument>> SimilarResults { get; set; }
Любая помощь будет принята с благодарностью,
Заранее спасибо
JP