поиск в mysql части поля

kolyazdv

Новичок
поиск в mysql части поля

Добрый день!

интересует вопрос поиска в таблице

`tov` (
`id` int(10) unsigned NOT NULL auto_increment,
`name` longtext,
PRIMARY KEY (`id`)
)

колич строк 10000

по части поля `name`. в строку поиска вводят часть имени и должно выдать все строки где это попадаеться.
Важно быстродествие...

по инфе нашел http://phpclub.ru/detail/article/mysql_search
применимо только

Первым делом надо порезать ручками строку.
$search = substr($search, 0, 64);
64 символов пользователю будет достаточно для поиска. Теперь каленым железом выжжем все "ненормальные" символы.
$search = preg_replace("/[^\w\x7F-\xFF\s]/", " ", $search);
По идее, нельзя давать пользователю возможности искать по слишком коротким словам - кроме всего прочего, это сильно загружает сервер. Итак, разрешим искать только по словам, которые длиннее двух букв (если ограничение больше, надо заменить "{1,2}" на "{1, кол-во символов}").
$good = trim(preg_replace("/\s(\S{1,2})\s/", " ", ereg_replace(" +", " "," $search ")));
А после замены плохих слов - надо сжать двойные пробелы (они были сделаны специально для корректного поиска коротких слов).
$good = ereg_eplace(" +", " ", $good);

но как организовать быстрый поиск ума не приложу :( подскажите пож-та
 

Gas

может по одной?
Wicked
Блин, я думал только меня такие бредовые идеи одолевали насчёт подобного поиска, а человек вон взял и сделал.

Поглядел доку sphinx'а, в новой версии такую же схему для wildcard'ов добавили.
 

Gas

может по одной?
это ты про enable_star? и какая именно версия подразумевается под новой?
новой считаю 0.9.8-rc1
ага, имел ввиду enable_star и min_infix_len
Но вот щас глянул доку по 0.9.7, там про min_infix_len ничего нет, а вот в конфиге индексатора есть такая настройка, значит не такая уж и новая фича, просто не знал.

Это я всё к чему, думал такой алгоритм поиска извращение, а оказывается по другому и не сделаешь.
 
Сверху