Couchbase Полнотекстовый поиск Специальный символ или Акцент - PullRequest
0 голосов
/ 26 июня 2018

Мне понадобится помощь в настройке Полнотекстового поиска на Couchbase .

Я пытаюсь игнорировать специальные символы , такие как акценты , для большей гибкости.

Я думаю, что решение находится в конфигурации «Анализаторы» и «Пользовательские фильтры». Создавая « Символьный фильтр », такой как этот (по одному на каждую букву), не получается:

Regular Expression: [àáâãäåæ]
Replacement: a

Есть идеи?

1 Ответ

0 голосов
/ 27 июня 2018

Одним из возможных решений является использование Fuzzy Query.

Согласно Документация :

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

Для ваших нужд я бы начал с нечеткости 1 и попробовал бы:

{
 "term": "hellå",
 "field": "test.field",
 "fuzziness": 1  
}

Если вы используете SDK, вы можете найти пример использования здесь .

Например:

TermQuery query = SearchQuery.term("hellå").field("test.field").fuzziness(1);
...