Страница 1 из 1

насчет поиска по тексту

СообщениеДобавлено: 07 ноя 2014, 19:58
vanred79
Добрый день! У меня на сайте стоит поиск по описанию и адресу. Если в поиск ввести "ЖК Номад", ничего не находит :(, надо писать "Номад", тогда находит 7 вариантов. Получается поиск может искать только по 1 слову. Поиск по группе слов дает практически нулевой результат. Так и должно быть или я не правильно понимаю логику работы поиска?

Re: насчет поиска по тексту

СообщениеДобавлено: 08 ноя 2014, 11:41
Xpycm
Доброе утро.

В файле protected/modules/quicksearch/controllers\MainController.php есть код:
Код: Выделить всё
$searchString = '+'.implode('* +', $words).'* '; # https://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html  


При вводе "ЖК Номад" в переменную $searchString заносится значение "+ЖК* +Номад*"

Чтобы была понятна логика работы почитайте статью: https://dev.mysql.com/doc/refman/5.5/en ... olean.html

После прочтения измените код с:
Код: Выделить всё
$searchString = '+'.implode('* +', $words).'* '; # https://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html  

на:
Код: Выделить всё
$searchString = '+ *'.implode('* + *', $words).'* '; # https://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html  


и получите требуемый результат.

Re: насчет поиска по тексту

СообщениеДобавлено: 01 дек 2014, 20:16
psdich
Код: Выделить всё
$searchString = '+'.implode('* +', $words).'* '; # https://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html     

изначальный код в open real estate корректый, он ищет по множеству слов. Вероятнее всего проблема у Вас с настройками БД - не индексируются короткие слова (скорее всего от 3 или 4 символов начинается поиск)
в bin\mysql.ini добавьте строчку ft_min_word_len=1 после [mysqld] и сбросьте кэш таблицы apartment, по которой осуществляется поиск с помощью "REPAIR TABLE <TableName> QUICK;"
тогда поиск будет вестись от одного символа

Re: насчет поиска по тексту

СообщениеДобавлено: 02 дек 2014, 09:05
vanred79
Добрый день! А где находится файл bin\mysql.ini?

Re: насчет поиска по тексту

СообщениеДобавлено: 02 дек 2014, 14:17
Mono
vanred79 писал(а):Добрый день! А где находится файл bin\mysql.ini?


если сервер не ваш - то это вопрос к хостеру