MySql FULLTEXT - полнотекстовый поиск по БД

Статус
В этой теме нельзя размещать новые ответы.

fredis69

Постоялец
Регистрация
24 Окт 2008
Сообщения
84
Реакции
2
Уважаемые пользователи помогите решить задачу с поиском по БД, надо сделать поиск который будет выводить данные поиска по релевантости, для этого я использую FULLTEXT, но если мне надо выводить данные по релевантности, тогда в поиск надо вбивать поисковые слова полностью (пример если мне надо найти в базе: "крем для масажа" а я в поисковую строку вбиваю просто слово масаж то он мне ничего не выведет, а вот если я вбиваю масажа тогда выводит), как реализовать поиск по БД если слово допустим недописано?


Пример 1 Выводит по релевантности, но не ищет по недописаным словам:
PHP:
$res= "SELECT * FROM product WHERE MATCH (title,description) AGAINST ('$q')";
$result = mysql_query($res) or die("Запрос ошибочный");
$row = mysql_fetch_array($result);


Пример 2 ищет по недописаным словам, но выводит по id, а не по релевантности:
PHP:
$res= "SELECT * FROM product WHERE MATCH (title,description) AGAINST ('$q*' IN BOOLEAN MODE)";
$result = mysql_query($res) or die("Запрос ошибочный");
$row = mysql_fetch_array($result);


Как сделать, чтобы искал по недописаным словам и выводил результаты по релевантности?
Или можите подсказать какой нибуть другой способ поиска по БД, но учтите что у меня в БД товара более 20 тысяч наименований
 
Попробуй так сделать:
PHP:
$res= "SELECT * FROM product WHERE MATCH (title,description) AGAINST ('$q'%)";
Вместо $q сделать $q и знак процента % . Т.е. должен искать масаж% , где % - любой набор символов.
 
Попробуй так сделать:
PHP:
$res= "SELECT * FROM product WHERE MATCH (title,description) AGAINST ('$q'%)";
Вместо $q сделать $q и знак процента % . Т.е. должен искать масаж% , где % - любой набор символов.

Вообще не работает, выдает ошибку.

ОШИБКА:
PHP:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\test.ru\www\basic_filling_page\center_block.php on line 322
 
Поддерживаю пост про Сфинс, мы долго парились с поиском, всякие расстояния левеншталя считали. В итоге поставили сфинкс и все стало гораздо проще.

Сфинкс умеет прикидываться сервером Mysql поэтому кардинально ничего перепысывать не пришлось
 
Кто знает как устанавливать Сфинс ?

Возникнут проблемы или нет при установки на вертуальный хостинг (тоесть хостинг предоставленный провайдером)?
 
Кто знает как устанавливать Сфинс ?

Возникнут проблемы или нет при установки на вертуальный хостинг (тоесть хостинг предоставленный провайдером)?
про установку читай выше. хостер вряд ли согласится ставить сторонний софт, поэтому лучше арендовать сервер.
 
про установку читай выше. хостер вряд ли согласится ставить сторонний софт, поэтому лучше арендовать сервер.

Всё понятно, спасибо за инфу.
Буду FULLTEXT-ом насиловать БД.

А насчет сервера, нехочется переплачивать, я за хостинг сейчас 270руб. в месяц за 5Гб. а за сервер будет подороже
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху