Критерии поиска для Lucene Examine - PullRequest
2 голосов
/ 25 ноября 2011

Я пытаюсь создать разумный механизм поиска для веб-сайта, который содержит информацию в текстовых статьях.Я делаю поиск в исследовании umbraco lucene.

Итак, скажем, поля, которые я ищу, это "bodyText" и "titleText",

Что я придумаладля фильтра это:

var filter = criteria
           .GroupedOr(new string[] { "bodyText","titleText"}, SearchTerm)
           .Compile();

Что является примером лучшего поиска, который будет включать, например, результаты, которые содержат SearchTerm ("literate" будет результатом для "iter" поиска)или какое-либо другое улучшение для этого поиска?

1 Ответ

4 голосов
/ 29 ноября 2011

Вы пробовали Fuzzy()?

С http://umbraco.com/follow-us/blog-archive/2011/9/16/examining-examine.aspx

Иногда пользователи будут запрашивать ваш сайт в поиске термина, который они могли написать с ошибкой или очень близко. Fuzzy дает вам возможность заставить Lucene искать термины, похожие на ваш термин. Например, насыпь действительно может быть здоровой.

var query = searchCriteria.Fields("nodeName","hello".Fuzzy(0.8)).Compile();

Необязательное значение, которое вы передаете в Fuzzy в диапазоне от 0 до 1, указывает, насколько Fuzzy или насколько близко совпадение к оригиналу. Например, совпадение 0,5 не вернется, если указан порог 0,8.

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

...