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

Вопросы и ответы по изменению функционала, смене дизайна, переносу сайта и т.п.

Модераторы: Xpycm, Koduc

Правила форума
ВНИМАНИЕ! Форум не является средством гарантированной поддержки клиентов и пользователей. Поэтому на быстрый ответ тут рассчитывать не нужно, как и на ответ вообще. Сотрудники отвечают по мере своих возможностей.

На форуме действует ограничение в 3 сообщения / сутки.
Если Вы хотите сказать "спасибо", то воспользуйтесь функцией "Повысить репутацию" - зелёная иконка "плюс" под ником ответившего.

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

Сообщение vanred79 » 07 ноя 2014, 19:58

Добрый день! У меня на сайте стоит поиск по описанию и адресу. Если в поиск ввести "ЖК Номад", ничего не находит :(, надо писать "Номад", тогда находит 7 вариантов. Получается поиск может искать только по 1 слову. Поиск по группе слов дает практически нулевой результат. Так и должно быть или я не правильно понимаю логику работы поиска?
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

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

Сообщение Xpycm » 08 ноя 2014, 11:41

Доброе утро.

В файле 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  


и получите требуемый результат.
Dropbox
Open Real Estate CMS: FAQ | FAQ 2 | FAQ 3
Изображение
Xpycm
Разработчик
Разработчик
 
Сообщения: 1592
Зарегистрирован: 30 дек 2011, 11:06
Откуда: Йошкар-Ола
Очки репутации: 50

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

Сообщение psdich » 01 дек 2014, 20:16

Код: Выделить всё
$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;"
тогда поиск будет вестись от одного символа
psdich
Незнакомец
 
Сообщения: 5
Зарегистрирован: 01 дек 2014, 19:12
Очки репутации: 0

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

Сообщение vanred79 » 02 дек 2014, 09:05

Добрый день! А где находится файл bin\mysql.ini?
Вся недвижимость Астаны у нас на сайте
vanred79
Местная знаменитость
Местная знаменитость
 
Сообщения: 660
Зарегистрирован: 02 фев 2013, 18:42
Откуда: Казахстан
Очки репутации: 2

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

Сообщение Mono » 02 дек 2014, 14:17

vanred79 писал(а):Добрый день! А где находится файл bin\mysql.ini?


если сервер не ваш - то это вопрос к хостеру
Mono
Гражданин
Гражданин
 
Сообщения: 155
Зарегистрирован: 14 сен 2013, 02:29
Очки репутации: 0


Вернуться в Вопросы и помощь по изменениям

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 16

cron