The Diary
Дневникът на Jul
<- Предишен запис (2008-03-13) | Дневника | Следващ запис (2008-03-15) ->
Архив
Петък, 14 Март 2008
Интересен въпрос, с които се сблъсках тези дни беше, как да направя търсенето по думи и фрази в сайта ни да работи по възможно най-добрия начин с възможно най-малко усилия. Очевидно да ползвам по едно търсене на дума и да обединявам резултатите щеше да е ужас, а LIKE "%бау мяу%" не върши работа защото бау и мяу трябва да са точно в този ред и с точно един интервал разделени.
Малко ровене в нета ми даде следното решение. Прави се FULL TEXT индекс на полетата в които е текста и после може да се търси в тях с FULLTEXT и CONTAINS командите на MSSQL за думи и фрази и даже за по-известните езици дори и с формите на думата. Като цябо решението е много просто - създава се индекса, създава се и индкс на таблицата която ще се ползва и се указва кои полета да се включат за търсене и това е 3 команди на кръст. Например
CREATE FULLTEXT CATALOG ft AS DEFAULT; % създава каталога CREATE UNIQUE INDEX ui_ukTabID ON Tablename(SomeID); % създава уникален индекс на таблица по поле SomeID CREATE FULLTEXT INDEX ON Tablename(SomeField LANGUAGE 0, OtherField LANGUAGE 0) KEY INDEX ui_ukTabID; % парсва полетата
Друг такъв интересен въпрос беше как най-сигурно да направя търсене с IN селекция. Старото решение, което ползвахме до сега беше да се сглоби заявката в стринг и да се изпълни с Exec но това си плаче за експлоитване, защото ако някои прекара кофти параметър и може да направи SQL Injection, затова вввввввсе спрях на едно друго решение - предава се xml параметър с дефиниция на таблица и после се ползва временната таблица с IN SELECT @XmlTable и така няма нужда от необезопасени параметри. Следния може направо да се ползва в IN заявката.
SELECT tempTable.item.value('.', 'VARCHAR(MAX)') AS Item
FROM @list.nodes('list/item') tempTable(item)
Вечерта пък след като пак помогнах на Конрад да попренесе някой неща, се събрахме в тях да гледаме филм. Взехме Shoot em up - весело и не особено дълбокомисленно екшънче, което прави впечатлението, че гледаш филмиран комикс, особено кагот нашия човек трепе наред с...напрежението расте...моркови!
[ Добави коментар ]Comments, texts and pictures not signed by me are property of their respective owners.
(c) 2003-2005 by Georgi Chorbadzhiyski. Some rights reserved.
Страницата е генерирана от Glog v3.50