Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск по окончанию слова / 6 сообщений из 6, страница 1 из 1
08.11.2016, 12:11
    #39343302
varik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по окончанию слова
Здравствуйте, есть такая проблема: существует таблица вида Id (int), word (varchar). В ней содержится более 10 миллионов пар id-слово. Как организовать поиск по окончанию слова?
1 вариант: LIKE '%последние_три буквы_слова' - работает, но очень долго.
2 вариант: FULLTEXT KEY и конструкция MATCH(`word`) AGAINST('*последние_три буквы_слова' IN BOOLEAN MODE) - но эта конструкция не работает т.к. звёздочка может быть только в конце и может искать только по началу слова (хотя некоторые, скорее всего старые мануалы, пишут, что звёздочку можно ставить где угодно).

Подскажите пожалуйста, есть ли ещё варианты организовать поиск по окончанию слова (по последним нескольким буквам) на чистом MySQL? Если нет, то что может помочь? Sphinx?
...
Рейтинг: 0 / 0
08.11.2016, 12:32
    #39343330
Melkij
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по окончанию слова
varik,

Продублировать word в word_reverse с обратным порядком символов. Получается классический префиксный поиск like 'const%' (только буквы в обратном порядке ставьте), возможна работа по индексу.
Если версия позволяет, используйте generated columns: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html Тогда не нужно следить за актуальностью соответствия прямого и обратного полей.
...
Рейтинг: 0 / 0
08.11.2016, 18:27
    #39343810
Bandicooot
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по окончанию слова
varik,

попробойте через substring_index
...
Рейтинг: 0 / 0
08.11.2016, 18:53
    #39343822
varik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по окончанию слова
Спасибо вам за советы. Вариант от Melkij помог. Продублировал столбец слов с обратным порядком символов и использую like 'const%' . Работает по индексу и очень быстро.
...
Рейтинг: 0 / 0
08.11.2016, 21:14
    #39343883
hhhspc
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по окончанию слова
Пробовали на PHP через регулярки?
...
Рейтинг: 0 / 0
08.11.2016, 21:20
    #39343885
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск по окончанию слова
hhhspcПробовали на PHP через регулярки?Угу... выкачивать всю таблицу на клиента, чтобы потом по ней искать... гениально! особливо ежели таблица на несколько гектар раскинута.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск по окончанию слова / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]