PHP в деталях

       

По следам поиска ещё раз


DL
28.9.2001

Комментарии к предыдущему материалу Олега Юсова.

Упражнения в настройках и запросах.

Сначала как добавить FULLTEXT-индекс:

mysql> alter table articlea add fulltext(ztext);

ERROR 1073: BLOB column 'ztext' can't be used in key specification with the used table type

mysql> alter table articlea type=myisam;

Query OK, 36 rows affected (0.60 sec)

Records: 36 Duplicates: 0 Warnings: 0

mysql> alter table articlea add fulltext(ztext);

Query OK, 36 rows affected (10.00 sec)

Records: 36 Duplicates: 0 Warnings: 0

Текстовые индексы можно делать только в таблицах типа MyISAM. Тексты берутся из таблицы и скидываются в файл индекса, и растёт объём базы.



По поводу запросов.

Нельзя поле relev использовать в клаузе WHERE:

SELECT *, MATCH field AGAINST ('$searchwords') as relev FROM table WHERE relev>0 ORDER BY relev DESC

хотя можно:

SELECT *, MATCH field AGAINST ('$searchwords') as relev FROM table WHERE MATCH field AGAINST ('$searchwords')>0 ORDER BY relev DESC

Вычисленное поле, конечно же, нельзя использовать в WHERE по всем правилам синтаксиса, но можно использовать в HAVING:

SELECT *, MATCH field AGAINST ('$searchwords') as relev FROM table HAVING relev>0 ORDER BY relev DESC

Поиск через MATCH, как писал Олег, делается только по слову целиком. ...Впрочем, по релевантности можно только сортировать, а выбирать по LIKE (это, конечно, скажется на производительности, даже не знаю, насколько).

Убираем условие "relev>0", оставляем сортировку. Остальное, как и раньше? рубим полученную строку и превращаем в запрос с несколькими операторами LIKE:

SELECT *,MATCH field AGAINST ('$searchwords') AS relev FROM table WHERE field LIKE '%$word1%' OR field LIKE '%$word2%' ORDER BY relev DESC, datefield DESC

Логи, которые я теперь собираю по технологии, которую предложил RomikChef, работают гораздо лучше. Скорость выборки на удивление осталась прежней, зато объём файлов, в которых лежат таблицы, сократился в 10 раз.

Кому надо, могут скачать () [].


Если не лень будет, выложу скрипт для автоматической отправки по почте логов с хостинга на дом, запакованных в формате GZip (Windows Commander понимает). Для полной автоматизации можно будет сделать канал для WatzNew, и логи будут идти сами, например, раз в неделю (получится письмо объёмом около 300 килобайт).

Найдено []:

mailto:serforester@peren.ru 23.08.2001 10:01

Дима, прости уж мне мою банальность (хотя кто я такой, чёб меня прощать), но все эти разговоры о Лебедеве ... Ну первооткрыватель, ну сделал кучу сайтов, есть у него чувство формы, да и программульки писать могЁт. Ну и хватит :-) Просто когда кого-то постоянно захваливают ? хочется отойти подальше и не слышать этого. И чёрт с ним, что не будешь понимать о чём потом будут разговоры ? зато хоть уважение и интерес к этой личности останется. Короче, это как с Сибирским Цирюльником и его Мэйкером. Уважаю я Никиту Михалкова и поэтому не могу смотреть на то, как он превращается в холёную "звезду". Кстати, "цирюльника" так и не посмотрел ? у Н.М. и так хватает интересных фильмов. Вообщем, поступило типа предложение: все на [] или [] , а про автора ни-ни. Пропадёт ? будут о нём, как об арханизме Рунета говорить.

mailto:nail@bowling.nsk.su 26.08.2001 16:43   

2 serforester@peren.ru:

Что-то вы напутали, Семен Семеныч.

[] и &nbsp [];? дело рук двух разных людей ? Дмитрия Лебедева и Артемия Лебедева соответственно.

Оказывается, благодаря моим усилиям Артемий "программульки писать могёт". Мне лестно.


Содержание раздела