Lucene.Net MoreLikeThis возвращает 0 интересных терминов и никаких предложений в запросе

Я пытаюсь реализовать запрос Lucene.Net MoreLikeThis, но, похоже, он не может найти в документе ничего интересного для поиска по индексу.

В моем сценарии пользователь щелкнул ссылку «Еще как это» на веб-странице результатов поиска, это передает идентификатор документа в строку запроса. Мой код Lucene.Net выглядит так:

var similarSearch = new MoreLikeThis(reader);
similarSearch.SetFieldNames(new[] { "Place", "Subject", "Description", "Name", "Town", "Occupation" });
similarSearch.MinWordLen = 3;
similarSearch.Boost = true;

var terms = similarSearch.RetrieveInterestingTerms(docid);
var doc = reader[docid];

var searchQuery = similarSearch.Like(docid);

После казни; переменная terms - это пустой массив, переменная doc содержит документ, а searchQuery не содержит предложений. Когда я запускаю поиск по запросу, он не возвращает никаких документов.

Я пришел к выводу, что я могу получить документ от читателя, но объект MoreLikeThis не может найти ничего для построения запроса.

Есть идеи, почему?


person Fran Hoey    schedule 23.09.2013    source источник
comment
Предполагается, что вы выполняете поиск с использованием searchQuery, например: Hits hits = searcher.Search(searchQuery);. Взгляните на этот образец   -  person rae1    schedule 25.09.2013
comment
@ rae1n Это следующая строка в коде var hits = searcher.Search(searchQuery, 15000);. После выполнения hits.TotalHits равно 0. Я исключил его из примера, так как предполагаю, что причина в отсутствии предложений в searchQuery   -  person Fran Hoey    schedule 25.09.2013
comment
Понятно. В таком случае, скорее всего, ничего подобного этому документу нет, по крайней мере, недостаточно, чтобы вырезать ...   -  person rae1    schedule 25.09.2013
comment
@ rae1n документы небольшие, но по крайней мере в двух из полей есть намного больше документов, которые совпадают. Я думаю, что тот факт, что в запросе нет предложений, и он не может получить какие-либо интересные термины, указывает на другую проблему.   -  person Fran Hoey    schedule 25.09.2013


Ответы (1)


Я думаю, вам может потребоваться установить один или несколько из следующих параметров для объекта MoreLikeThis: Analyzer, MinTermFreq и / или MinDocFreq

У меня была такая же проблема - результаты не возвращаются. Как только я установил вышеуказанные параметры (попробуйте установить оба минимума на 1), все заработало.

person Phil Seeman    schedule 06.12.2013
comment
Спасибо, Фил. К сожалению, в конце концов это требование было снято. Надеюсь, это поможет кому-то еще - person Fran Hoey; 06.12.2013
comment
Я буквально рвал на себе волосы. Большое спасибо! - person Hazza; 27.01.2014
comment
Спасибо за ответ. Это сэкономило мне время. - person Moshii; 17.02.2017