Forum Webscript.Ru

Общие => Базы данных => Тема начата: kosm от 01 Ноября 2004, 14:27:44

Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 01 Ноября 2004, 14:27:44
Всем доброго времени суток!
Ребят, подскажите плиз, почему может не работать конструкция релевантного отбора по нескольким полям?
FillText Индекс создан по этим полям (col1,col2), но запрос возвращается пустым.
--
MATCH(col1,col2) AGAINST(\'text\')
--
Сервер свой, мож чего не компильнул с установкой mysql?
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: Меняздесьдавнонет от 01 Ноября 2004, 14:39:11
а почему этот вопрос задан в форуме по пэхапе?
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 01 Ноября 2004, 15:25:35
Извиняюсь, просто другого форума не нашел, а с php активно используют mysql. Но если это грубый оффтоп, то сори. Мож тогда подскажите хороший форум по mysql?
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: Меняздесьдавнонет от 01 Ноября 2004, 15:39:57
форум по базам данных на этом самом форуме.
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 01 Ноября 2004, 16:22:55
Сори, не углядел.

Вопрос остается открытым. В чем может быть трабла?
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: Меняздесьдавнонет от 01 Ноября 2004, 16:30:16
запрос точно возвращается пустым?
ошибок нет?
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 01 Ноября 2004, 16:36:50
нет, ошибок не говорит. изначально небыло индекса fulltext, после создания стал пустой ответ.
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: fidget от 01 Ноября 2004, 16:50:49
приведи пример запроса
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 01 Ноября 2004, 17:09:29
SELECT
   Title,
   Body
 FROM
   Index
 WHERE
   MATCH(Title,Body) AGAINST(\'%сайт%\');
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: Phoinix от 01 Ноября 2004, 18:52:24
kosm
А что значат \'%\' в выражении AGAINST ??? AFAIK - могут быть только + и - перед словами...
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 02 Ноября 2004, 11:26:55
Phoinix , сори, не юзал еще эту ф-цию ни разу.
--
SELECT Title, Body
FROM Index
WHERE MATCH(Title,Body) AGAINST(\'сайт\');
--
тоже ничего не находит.
Пробовал так:
--
SELECT Title, Body, MATCH(Title,Body) AGAINST(\'сайт\')
FROM Index;
--
По нулям match выдает на каждую запись, хотя искомое слово присутствует. Таблица такая:

CREATE TABLE `Index` (
  `ID` int(11) NOT NULL auto_increment,
  `Title` varchar(255) NOT NULL default \'\',
  `Body` text NOT NULL,
  `URL` varchar(255) default NULL,
  `Size` int(11) NOT NULL default \'0\',
  `Indexed` tinyint(4) NOT NULL default \'0\',
  PRIMARY KEY  (`ID`),
  KEY `Indexed` (`Indexed`),
  KEY `Title` (`Title`),
  FULLTEXT KEY `TitleBody` (`Title`,`Body`)
) TYPE=MyISAM
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: fidget от 02 Ноября 2004, 12:22:05
если слово "сайт" присутствует в более чем половине строк таблицы, то результат будет пустым.
Проверь так же что с default-character-set все ок.
Название: Не работает конструкция MATCH (col1,col2) AGAINST (expr)
Отправлено: kosm от 02 Ноября 2004, 16:23:47
fidget, спасибо! Похоже здесь собака порылась...

Connection id:          1
Current database:
Current user:           root@localhost
SSL:                    Not in use
Current pager:          more
Using outfile:          \'\'
Server version:         4.0.21
Protocol version:       10
Connection:             Localhost via UNIX socket
Client characterset:    latin1
Server characterset:    cp1251