Как сделать нечеткий поиск в Lucene.net в asp.net?

У нас есть создание индекса lucene.net и поиск по этому URL-адресу http://sonyblogpost.blogspot.in/. но мы хотим вывод как следовать.

пример: если я ищу "Featured", я хочу показать связанные термины, такие как "Featured", "Featuring", "Feature".

Любой может помочь мне. Благодарю.

2 ответа

Решение

Для выполнения нечеткого поиска вы создадите MultiFieldQueryParser Ниже приведен пример того, как это сделать:

var parser = new MultiFieldQueryParser(Lucene.Net.Util.Version.LUCENE_29, new[] { "field1", "field2" }, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));

Ваша версия Lucene.Net может отличаться.

Далее вы получите нечеткий запрос от парсера, например:

var query = parser.GetFuzzyQuery("fieldName", "featured", 0.7f);

Значение с плавающей точкой 0.7f это минимальное сходство. Вы можете настроить этот номер, пока не получите желаемый результат. Число не может быть больше чем 1.0f, Выполнение этого запроса с помощью Lucene Searcher даст вам ожидаемые результаты.

Вы, вероятно, ищете стеминг: создание слов на английском языке с помощью Lucene - ссылка на Java, но вы должны быть в состоянии определить соответствующие части API Lucene .Net.

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