Как отфильтровать запрос MoreLikeThis - PullRequest
0 голосов
/ 23 октября 2011

Я использую SOLR и пытаюсь отфильтровать запрос MoreLikeThis.Каждый раз, когда я делаю фильтр, я получаю нулевые результаты.Вот код, который я использую:

var results = solr.Query(new SolrQuery("id:" + id)
                         && !new SolrQuery("siteid:" + SiteId), new QueryOptions
{
    MoreLikeThis = new MoreLikeThisParameters(new[] { "content" })
    {
        MinDocFreq = 1,
        MinTermFreq = 1,
        Count = rows
    },
    Fields = new[] { "id" },
    OrderBy = new[] { new SortOrder("score", Order.ASC) },
    Start = start
});

, как видите, !new SolrQuery("site:" + SiteId) - это фильтр.Когда я добавляю этот фильтр в запрос, я не получаю результатов.

Вот что делает запрос.У меня есть несколько веб-страниц в индексе solr:

  • id
  • Заголовок
  • Содержимое
  • siteid

Более похожий на запрос запрос id затем извлекает аналогичные документы.Предполагается, что фильтр фильтрует веб-страницы по siteid.Когда я применяю фильтр siteid, он не работает.Есть идеи по этому поводу?

1 Ответ

2 голосов
/ 23 октября 2011

Кажется, вы хотите использовать обработчик MoreLikeThis , а не MoreLikeThis в качестве компонента .

Существует патч , реализующий это вSolrNet, в настоящее время на рассмотрении.Я призываю вас взглянуть на патч и оставить отзыв о нем!

...