Поиск текста в базе данных оракула для символов, таких как «а», чтобы соответствовать следующим символам: «а», «а», «â» и «ä» - PullRequest
4 голосов
/ 27 мая 2011

У меня есть база данных Oracle с данными на французском языке.

Мои пользователи отметили, что хотели бы иметь возможность находить данные независимо от ударения на символах, поэтому такие слова, как:

  • Школа можно найти, набрав Школа или Школа
  • Пер-Ноэль можно найти, набрав Пере-Ноэль или Пер-Ноэль или Пер-Ноэль

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

Предоставляет ли Oracle какие-либо средства для этого и, если нет, какие решения для этого доступны?

1 Ответ

3 голосов
/ 27 мая 2011

Проверьте документацию для полнотекстовых индексов Oracle (Oracle Text) - по сути, вы захотите создать для этого собственный лексер.

Чтобы создать простой полнотекстовый индекс:

create index fulltext_idx on tab(col) indextype is ctxsys.context; 

ОБНОВЛЕНИЕ: использование auto_lexer также может быть вариантом (так как он поддерживает французский язык), см. http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/cdatadic.htm#BHCGJHDH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...