Некоторые французские слова используют следующие символы:
Œ, œ, как в словах œuf (яйцо) или cœur (сердце), œuvre (множественные переводы и значения, поэтому я не буду подробно останавливаться на этом, это не имеет значения), и т.д..
Æ, æ, как в слове nævus (научный термин для родинки (точка на коже, а не животное) или других.
æ используется редко (я думаю, это всегда научные/медицинские термины из латыни?), но œ, однако, довольно часто встречается во французском языке.
К сожалению, этих специальных символов нет на французской раскладке клавиатуры, и многие люди просто пишут «oe» или «ae» вместо них.
Однако у некоторых пользователей есть пользовательские раскладки, а автокоррекция на смартфонах или другие системы помощи при написании часто автоматически исправляют слова, заменяя их на правильные «объединённые символы», например, «oeuvre» → «œuvre».
В настоящее время поиск обрабатывает «oe» и «œ» как разные строки, что приводит к разным результатам, которые должны быть одинаковыми.
SELECT to_tsvector('french', E'Cette oeuvre d\'art n\'est pas une œuvre.');
to_tsvector
------------------------------------
'art':4 'cet':1 'oeuvr':2 'œuvr':9
(1 row)
По каким-то причинам я думал, что обработка диакритических знаков, лигатур и подобного уже решённая задача при работе с поиском… Похоже, что нет?
Как я однозначно поддерживаю это. Похоже, мы могли бы использовать unaccent из PostgreSQL, который удаляет ударения и также работает с распространёнными лигатурами.
А как француз, вы тоже ненавидите эту бесполезную сложность этого (хоть и интересного) языка так же сильно, как и я?
Извините за небольшой оффтоп с юмором