|
Тема |
Re: Migration again... [re: bass] |
|
Автор |
бaй Любo ({}) |
|
Публикувано | 05.12.02 20:14 |
|
|
Глей сега да ти дам една идея, бъпреки че сигурно няма да ти свърши работа щото изобщо не знам как ша работи с кирилица и български. Накратко правиш си твой механизъм за търсене:
да речем че таблицата в която искаш да търсиш е
create table s (code int, descr varchar (200))
и code ти е примару кл. и искаш да търсиш в descr.
правиш си отделна таблица
create table metaindex (word char (30), sound_code char (4), code(int))
create index sind on metaindex (word)
Тая втора таблица (метаиндекс) си я зареждаш с една stored proc, която чете таблицата s, и за всеки ред изважда всичките думи от descr и ги зарежда в метаиндекс заедно със съответния code. Същевременно процедурата смята soundex() а всяка дума и го зарежда в съответното поле -- е това не знам ка ще работи с български думи.
За бъдещи инсерти, същия код можеш да го плеснеш в един тригер в/у s.
Та като я свършиш тая подготвителна работа, търсенето на думи се свежда до join na s i metaindex със съответните OR или UNION за повече от една дума.
Ако търсенето на думите не върне резултат, можеш да пуснеш второ търсене по soundex.
Ako ти звучи интесно, кажи ще ти постна съответния код. (sybase 11.9.2, трябва да върви и на ms sql server)
Редактирано от бaй Любo на 05.12.02 20:17.
|
| |
|
|
|