REGEXP

AKAPE

Новичок
REGEXP

Хочу написать примитивного чат-бота с базой, используя регулярные выражения, тоесть в базе в одной колонке храниться шаблон, под который может попасть вводимая фраза, а в другой ответ, но как понял с помощью REGEXP ожно сравнивать лишь ПО шаблону. Или я опять таки чтото не понял ? :confused:
 

Falc

Новичок
AKAPE
>>одной колонке храниться шаблон
...
>>но как понял с помощью REGEXP ожно сравнивать лишь ПО шаблону

И в чем проблема?
 

AKAPE

Новичок
к примеру в колонке храниться шаблон типа

пр[ие]вет.*?

пользователь вводит фразу "приветище народ!"

как в таком случае составить запрос?
 

Falc

Новичок
Правда подобные запросы будут довольно медленые, поэтому не стоит делать очень много записей с таблице в шаблонами
 

AKAPE

Новичок
спасибо %)

-~{}~ 12.03.04 15:01:

можно было конечно же хнанить обрезаные слова и выбирать LIKE-ом, но тогда не было бы такой гибкости в построении шаблона, думаю, что в базе будет не более 10 000 реплик, это если брать по-максимуму.
 

Falc

Новичок
AKAPE
10 000 это много. При каждом запросе будет выполнятся 10 000 регэкспов.
 

AKAPE

Новичок
это ведь максимальное значение, в реальности он найдет ответ гораздо быстрее если задать LIMIT. Я не вижу другого солюшена. Может посоветуете что нибудь?
 

Falc

Новичок
AKAPE
Если на одни и теже шаблоны у тебя могут быть разные реплики, то лучше разнести на 2 таблицы. В одной реплики в другой шаблоны.

-~{}~ 12.03.04 15:09:

AKAPE
еще есть вариант разбить шаблоны на групы и сначало сравнивать с груповым шаблоном, а потом уже с шаблонами внутри группы.
Например:

группа: ab.*
abc.*
abd.*
abe.*
abf.*

группа: bc.*
bca.*
bcb.*
bcc.*
bcd.*
 

AKAPE

Новичок
я думаю этого не будет. Хотя, кто знает что збредет в голову потом. спасибо за совет.
 

Altex

Новичок
AKAPE
это ведь максимальное значение, в реальности он найдет ответ гораздо быстрее если задать LIMIT. Я не вижу другого солюшена. Может посоветуете что нибудь?
Аппаратный RegEx акселератор
"Устройство, выполненное в виде PCI-карты, предназначено для работы в качестве аппаратного акселератора для выполнения регулярных выражений соответствующих нотации POSIX 1003.2. Прирост производительности по сравнению с программными методами впечатляет."

офф сайт - http://www.tarari.com/regex/
прес релиз - http://www.tarari.com/news-pr030104.html
взято с - http://www.opennet.ru/opennews/art.shtml?num=3466
 

AKAPE

Новичок
Altex

Тоже спасибо, но к сожалению у меня не колокейшн, а всего навсего 100 мебогайтный виртуальный хостинг :)
 
Сверху