[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MATCH(...) AGAINST (...)
SarPHP
Поиск происходит по 1 большой таблице. В таблице, примерно, 10 полей.
Пользуюсь конструкцией типа WHERE MATCH (name) AGAINST('$find'), где name тип FULLTEXT;
Такая конструкция не устраивает.

Минусы. Ищется только то, что вводится в строчку поиска (переменная $find). При отклонении, хотя бы в 1 символ, поиск запарывается.
Искать получается только по 1 полю из таблицы. Пытаюсь искать сразу по 2 полям и ничего не получается. Заведомо ставлю св-во FULLTEXT этим полям.
Искать можно только слова, от 4 символов. Это из-за типа FULLTEXT так. Как его можно поменять/изменить? Ведь многие слова и из 3 букв состоят smile.gif

Кто что может порекомендовать? Особо крутой поиск не нужен. Еще раз повторюсь: поиск происходит по 1 большой таблице. В таблице, примерно, 10 полей. Нужно что-то посильней и оптимальней самого простого поиска.
Кидайте свои мысли сюда.



Спустя 10 минут, 57 секунд (20.05.2010 - 16:45) Nikitian написал(а):
like?

Спустя 12 часов, 42 минуты, 16 секунд (21.05.2010 - 05:27) SarPHP написал(а):
Как сделать так, чтобы LIKE искал по нескольким словам в запросе? Поясню.
Имеется предложение: "Жили были кот и собака. Медведь жил на параллельной улице". Вводим в поле поиска "кот медведь". В итоге ничего не найдется.


На данный момент, выборка такая:
$result = mysql_query("SELECT * FROM `table` WHERE `name1` LIKE '%$find%' OR `name2` LIKE '%$find%'",$db);

Спустя 2 часа, 2 минуты, 37 секунд (21.05.2010 - 07:29) Raito-kun написал(а):
RLIKE 
!

Спустя 2 часа, 11 минут, 7 секунд (21.05.2010 - 09:41) SarPHP написал(а):
с RLIKE вообще ничего не выдает

Спустя 40 минут, 32 секунды (21.05.2010 - 10:21) Nikitian написал(а):
Разбейте строку на слова по пробелам и сформируйте запрос с несколькими условиями на and или or.

Спустя 3 часа, 6 минут, 15 секунд (21.05.2010 - 13:27) SarPHP написал(а):
А можно ссылочку на то, как это делается? Чем дальше в лес, тем больше дров ph34r.gif

СПАСИБО что помогаете!

Спустя 46 минут, 16 секунд (21.05.2010 - 14:14) Basili4 написал(а):
$text="ехали медведи на велосипеде";
$text=" Like '%".str_replace(" ","%' And Like '%",$text)."'"; как то так.
and - можно заменить на or если нужен строгий поиск % убить

Спустя 5 часов, 33 минуты, 51 секунда (21.05.2010 - 19:47) SarPHP написал(а):
Basili4, вы не напутали с пунктуацией в вашем примере?

Спустя 13 часов, 49 минут, 27 секунд (22.05.2010 - 09:37) Fredrich написал(а):
Цитата (Basili4 @ 21.05.2010 - 11:14)
$text="ехали медведи на велосипеде";
$text=" Like '%".str_replace(" ","%' And Like '%",$text)."'"; как то так.
and - можно заменить на or если нужен строгий поиск % убить

че то я тут ничего не понял, можно подробнее данную конструкцию разобрать.
Заранее спасибо.

Спустя 7 часов, 15 минут, 27 секунд (22.05.2010 - 16:52) Basili4 написал(а):
SarPHP

Ну вы её испоните и увидете что вместо ехали медведи на велосипеде будет
Like '%ехали%' And Like '%медведи%' Like '%на%' Like '%велосипеде%';

И эту строку можно использовать в условии запроса
Пример

SELECT
table1.T
FROM
database1.table1
WHERE
table1.T LIKE "%медведи%" and table1.T LIKE "%ехали%" ;


Если в табле table1 в поле table1.T будет текст одновремено содержащий слова включающие в себя подстроки медведи и ехали

Примеры текстов соответсвующие условию

Ехали медведи на велосипеде
Ехали медведи на Мопеде
ыячволехалисчмчсмчс Вовсе не ываывафымедведивафыаыв на мопеде

Вот все тексты будут соответсвовать условию

Примеры текстов НЕ соответсвующие условию

Ехали Слоны на велосипеде
медведи на велосипеде

Фух вроде все объяснил. Если чего не понятно пишите в асю на пальцах объясню



Спустя 5 минут, 50 секунд (22.05.2010 - 16:58) Basili4 написал(а):
Fredrich

Значит так заменяю все пробелы на конструкцию
%' And Like '%
В моем примере получается

ехали%' And Like '%медведи%' Like '%на%' Like '%велосипеде

Но эта строка не годится её надо дополнить

Like '% - Это в начале получается

Like '%ехали%' And Like '%медведи%' Like '%на%' Like '%велосипеде

"'"- эту кавычу в конец получаем полню строку
Like '%ехали%' And Like '%медведи%' Like '%на%' Like '%велосипеде%'


_____________
Вольный веб-дизайнер, идейщик с постоянным чувством информационного голода; когда знания ценнее денег - когда узнаешь новое и уважаешь в прошлое уходящее..
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.