Новые сообщения [новые: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/search_topic.php?author=%D0%94%D0%BE%D0%B1%D1%80%D1%8B%D0%B9%D0%9A%D0%BE%D1%82&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
35ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 10674ms |
total: | 10832ms |
0 / 0 |