Lucene Fuzzy Match по фразе вместо одного слова - PullRequest
5 голосов
/ 07 апреля 2010

Я пытаюсь сделать нечеткое совпадение с фразой "Grand Prarie" (намеренно написано с ошибкой), используя Apache Lucene. Частично моя проблема заключается в том, что оператор ~ делает нечеткие совпадения только в терминах, состоящих из одного слова, и ведет себя как близкое совпадение для фраз.

Есть ли способ сделать нечеткое совпадение фразы с люценом?

Ответы [ 3 ]

5 голосов
/ 07 апреля 2010

Lucene 3.0 имеет ComplexPhraseQueryParser , который поддерживает запрос нечеткой фразы. Это находится в пакете contrib.

2 голосов
/ 07 апреля 2010

Нет прямой поддержки нечеткой фразы, но вы можете смоделировать ее, явно перечисляя нечеткие термины и затем добавляя их к MultiPhraseQuery .Результирующий запрос будет выглядеть так:

<MultiPhraseQuery: "grand (prarie prairie)">
1 голос
/ 02 июня 2013

Наткнулся на это через гугл и почувствовал решения там, где не то, что мне было нужно. В моем случае решением было просто повторить последовательность поиска против solr API. Так, например, если я искал: title_t, чтобы включить совпадение для "dog ~" и "cat ~", я добавил некоторый ручной код для генерации запроса как:

((title_t:dog~) and (title_t:cat~))

Возможно, речь идет о вышеупомянутых запросах, однако ссылки кажутся мертвыми.

...