Как отфильтровать запрос 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 есть патч, реализующий это, в настоящее время на рассмотрении. Я призываю вас взглянуть на патч и оставить отзыв!