Здравствуйте, Norex, Вы писали:
N>Привет всем.
N>Помогите решить проблему. У меня огромный набор данных который сейчас выбирается в 100% случаев как like '%word%'.
N>Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова.
Умеет.
Здравствуйте, gandjustas, Вы писали: N>>Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова. G>Умеет.
Дак подскажи, как PrefixWordPostfix ловить по "word".
Здравствуйте, Norex, Вы писали:
N>Здравствуйте, gandjustas, Вы писали: N>>>Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова. G>>Умеет.
N>Дак подскажи, как PrefixWordPostfix ловить по "word".
freetext попробуй, он словоформы нормально обрабатывает,
freetexttable чтобы еще значения релевантности получать и отбрасывать ненужные строки
Хотя в общем случае, для произвольных Prefix Word Postfix, не получится так сделать.
Если расскажешь подробнее что у тебя за данные такие, то более точный способ придумаем.
Здравствуйте, gandjustas, Вы писали: G>Если расскажешь подробнее что у тебя за данные такие, то более точный способ придумаем.
Тут всё куда сложнее.
Есть таблица, под 250К записей по 215байт каждая.
Запрос select count(*) from table where column like '%keyword%' отрабатывает за 2 sec. (иногда быстрее, всё зависит от keyword'а).
Задача ускорить этот процесс.
Где это используется?
Пользователь задаёт некоторые критерии фильтра, и должен видеть как можно быстрее кол-во записей удовлетворяющие этому критерию. Критерий в продакшене только keyword (обычный текст на англ.яз).
Делать предпросчёт кол-во записей, разбивая их на группы Aa-Ab, Ac-Ad итд. слишком сложно.
Здравствуйте, Norex, Вы писали:
N>Здравствуйте, gandjustas, Вы писали: G>>Если расскажешь подробнее что у тебя за данные такие, то более точный способ придумаем.
N>Тут всё куда сложнее. N>Есть таблица, под 250К записей по 215байт каждая.