t-sql contais vs like
От: Norex Россия  
Дата: 01.12.10 20:18
Оценка:
Привет всем.

Помогите решить проблему. У меня огромный набор данных который сейчас выбирается в 100% случаев как like '%word%'.

Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова.

Какие есть варианты решения?
Re: t-sql contais vs like
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.12.10 21:03
Оценка:
Здравствуйте, Norex, Вы писали:

N>Привет всем.


N>Помогите решить проблему. У меня огромный набор данных который сейчас выбирается в 100% случаев как like '%word%'.


N>Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова.

Умеет.
Re[2]: t-sql contais vs like
От: Norex Россия  
Дата: 01.12.10 21:06
Оценка:
Здравствуйте, gandjustas, Вы писали:
N>>Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова.
G>Умеет.

Дак подскажи, как PrefixWordPostfix ловить по "word".
Re[3]: t-sql contais vs like
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.12.10 21:34
Оценка:
Здравствуйте, Norex, Вы писали:

N>Здравствуйте, gandjustas, Вы писали:

N>>>Переход к fulltext search и использование contains решает проблему, но частично, т.к. contains не умеет (или умеет?) искать по части слова.
G>>Умеет.

N>Дак подскажи, как PrefixWordPostfix ловить по "word".

freetext попробуй, он словоформы нормально обрабатывает,
freetexttable чтобы еще значения релевантности получать и отбрасывать ненужные строки

Хотя в общем случае, для произвольных Prefix Word Postfix, не получится так сделать.

Если расскажешь подробнее что у тебя за данные такие, то более точный способ придумаем.
Re[4]: t-sql contais vs like
От: Norex Россия  
Дата: 01.12.10 21:51
Оценка:
Здравствуйте, gandjustas, Вы писали:
G>Если расскажешь подробнее что у тебя за данные такие, то более точный способ придумаем.

Тут всё куда сложнее.
Есть таблица, под 250К записей по 215байт каждая.

Запрос select count(*) from table where column like '%keyword%' отрабатывает за 2 sec. (иногда быстрее, всё зависит от keyword'а).

Задача ускорить этот процесс.

Где это используется?

Пользователь задаёт некоторые критерии фильтра, и должен видеть как можно быстрее кол-во записей удовлетворяющие этому критерию. Критерий в продакшене только keyword (обычный текст на англ.яз).

Делать предпросчёт кол-во записей, разбивая их на группы Aa-Ab, Ac-Ad итд. слишком сложно.
Re[5]: t-sql contais vs like
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 01.12.10 22:18
Оценка:
Здравствуйте, Norex, Вы писали:

N>Здравствуйте, gandjustas, Вы писали:

G>>Если расскажешь подробнее что у тебя за данные такие, то более точный способ придумаем.

N>Тут всё куда сложнее.

N>Есть таблица, под 250К записей по 215байт каждая.

Так а что там за текст?
Re[6]: t-sql contais vs like
От: Norex Россия  
Дата: 01.12.10 22:22
Оценка:
Здравствуйте, gandjustas, Вы писали:
G>Так а что там за текст?

Открой Inbox, Spam и посмотри на subject'ы — это и есть 99% процентов базы.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.