Как отфильтровать запрос MoreLikeThis

Я использую 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:

  • Я бы
  • заглавие
  • содержание
  • siteid

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

1 ответ

Решение

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

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

Другие вопросы по тегам