Apache Lucene и текстовое значение - PullRequest
0 голосов
/ 12 октября 2011

У меня есть вопрос о процессе поиска в Lucene /.Я использую этот код для поиска

    Directory directory = FSDirectory.GetDirectory(@"c:\index");
    Analyzer analyzer = new StandardAnalyzer();

    QueryParser qp = new QueryParser("content", analyzer);
    qp.SetDefaultOperator(QueryParser.Operator.AND);

    Query query = qp.Parse(search string);

В одном документе я установил " Я хочу пойти по магазинам " для поля, а в другом документе я установил "Я хочу пойти по магазинам".

смысл обоих предложений одинаков!

Есть ли какое-нибудь хорошее решение для lucene, чтобы понять смысл предложений или что-то вроде нормализации сцен?например, сохраните поля типа " Я хочу / хочу / пойти за покупками " и удалите комментарий с регулярным выражением в результате.

1 Ответ

1 голос
/ 12 октября 2011

Lucene предоставляет фильтр для нормализации слов и даже сопоставления похожих слов.

PorterStemFilter -
Основа позволяет сокращать слова до их корней.
Например, хотел, хотел бы быть сведен к корневому запросу, и поиск любого из этих слов соответствовал бы документу.Хочу не сводить к корню хотеть.Так что это может не сработать в этом случае.

SynonymFilter -
поможет вам сопоставить слова, похожие в файле конфигурации.
, поэтому вы можете сопоставить хотение, и если вы ищете какой-либо из них, документ должен совпадать.

вам необходимо добавить фильтры в цепочку анализа.

...