@man_without_face
студент

Как использовать регистрозависимость русских слов в pg_search?

Использую gem pg_search. Всё чудесно, пока не ищешь слова в разных регистрах русских слов. Т.е. "яблоко" и "Яблоко" это разные результаты. Но "test" и "Test" - одинаковые. Как это решить?

Мне пока к голову приходит только один вариант, но он тупой. Делаем ещё одну колонку, в которой всё содержимое - в нижнем регистре. А когда ищем, искомое слово тоже переводить в нижний регистр. Тогда конечно результат будет нужный, но это тупое дублирование. Ладно если одна колонка, но их же может быть множество.
  • Вопрос задан
  • 272 просмотра
Пригласить эксперта
Ответы на вопрос 1
@TelepnevDmitriy
Senior Web Developer
Посмотрите в сторону default_text_search_config в конфигах постгреса(postgresql.conf). В вашем случае он должен быть pg_catalog.russian. Посмотрите запрос, который генерирует ОРМ. Может оказаться, что у вас конфиги разъехались.

Например,
select to_tsvector('pg_catalog.english', 'яблоко'), to_tsquery('pg_catalog.russian', 'Яблоко')
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы