Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
01.04.2021, 22:08
|
|||
|---|---|---|---|
|
|||
Как заставить gin индекс брать триграммы не на основе дефолтного collation базы? |
|||
|
#18+
В базе данных все таблицы изначально были установлены в порядке сортировки: LC_COLLATE=C и LC_CTYPE = C. Оказалось, что из-за этого поиск игрока по нику не работает для кириллицы. Поэтому я решил изменить правила сортировки для отдельной колонки с ником: Код: sql 1. 2. 3. Далее я хотел сделать быстрый поиск игрока по нику с помощью индексов триграмм и создал gin индекс: Код: sql 1. 2. После этого поиск по нику значительно ускорился на латинице , и в плане запроса видно, что используется gin индекс. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Но тот же запрос не работает с кириллицей ... Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Я также попытался установить collation для gin индекса, но ничего не изменилось. Скажите, как заставить gin индекс брать триграммы, не основанные на стандартной сортировке базы? Есть ли какой-нибудь способ избежать перестройки кластера в этой ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.04.2021, 10:56
|
|||
|---|---|---|---|
Как заставить gin индекс брать триграммы не на основе дефолтного collation базы? |
|||
|
#18+
Евгений Калинин, а если указать collation и для поля в индексе и для самой поисковой строки в запросе - так не подхватит индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.04.2021, 11:45
|
|||
|---|---|---|---|
|
|||
Как заставить gin индекс брать триграммы не на основе дефолтного collation базы? |
|||
|
#18+
Создал новый индекс, дропнув старый: Код: sql 1. 2. Попробовал: Код: sql 1. 2. 3. Без изменений: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.04.2021, 12:06
|
|||
|---|---|---|---|
|
|||
Как заставить gin индекс брать триграммы не на основе дефолтного collation базы? |
|||
|
#18+
Так же заметил, что русский текст не разбивается на триграммы: Код: sql 1. 2. Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
02.04.2021, 12:59
|
|||
|---|---|---|---|
|
|||
Как заставить gin индекс брать триграммы не на основе дефолтного collation базы? |
|||
|
#18+
Евгений Калинин Так же заметил, что русский текст не разбивается на триграммы: Код: sql 1. 2. Код: sql 1. 2. В общем не вылечите вы это без пересоздания базы с нормальными LC_COLLATE/LC_CTYPE во всяком случае штатными методами. -- Maxim Boguk лучшая поддержка PostgreSQL: dataegret.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=53&mobile=1&tid=1994104]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
| others: | 267ms |
| total: | 390ms |

| 0 / 0 |
