Привет, умельцы. Столкнулся с проблемой. Нужен поиск по базе, база довольно большая. Поиск должен проводится по имени, городу, описания. Сделал типа: Код (Text): ALTER TABLE `table` ADD FULTEXT (name, city, description); В чем прикол. В поле name например имеется имя (Василий Иванов), вот надо организовать поиск что бы выводило согластно такому запросу или (Иванов Василий), Сначала этого василия, а потом все остальное. Релевантность не катит. Или я чето не то делаю. Пробывал в бинарном Код (Text): MATCH (name) AGAINST ('+иванов +василий' IN BOOLEAN MODE) Тоже не дует. Блин, подскажите, может я чето не то делаю...
Я бы посоветовал полный индекс делать по TEXT, а по varchar искать через LIKE, ибо в них хранятся короткие данные, с которыми могут быть проблемы у полнотекста. В запросе на фамилию разбивать слова и подставлять каждое к LIKE. P.S. А в приведеном примере, может быть виной регистр. Название кодировки в базе/столбцах не должна заканчиваться на bi
Я делал типа такого Код (Text): WHERE name LIKE '%василий%' || name LIKE '%иванов%' но вывод был не таким как мне надо, этот человек был фиг знает где, что его найти не реально....
А если провернуть так: [sql]WHERE (name LIKE '%василий%' AND name LIKE '%иванов%') OR (name LIKE '%василий%' OR name LIKE '%иванов%') [/sql] P.S. А вообще, можно и без лайков) [sql]WHERE name = 'василий иванов' OR name = 'иванов василий'[/sql]
Kreker Неа не помогает. Оно то находит но точное совпадение на первое место не выводит. Sergey89, есть одно - НО. Как тогда организовывать пейджер?