Перейти к контенту
  • 0

Странности с поиском


ipb323

Вопрос

Может кто сталкивался с такой проблемой. Поиск работает штатно и быстро, но стоит ввести слово, содержащее *, например, w*o*r*d*s, то мускуль задумывается на 1-2 минуты (загрузка идёт до 250%). В официальную поддержку писал, но они, в традиционной манере, отмазались - мол, ничего не знаем и трёшку скоро, вообще, с поддержки снимаем (ещё ни разу там не ответили, одни отмазки). Проблем с производительностью быть не может, т.к. сервер свой и с очень большим запасом. Как вариант, может можно как-то отфильтровать эти звёздочки на этапе запроса?

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0

Попробовать отключить полнотекстовый поиск в настройках. И вообще посмотреть список процессов в момент такой нагрузки и увидеть там какой запрос передается мускулю.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Запрос вот такой:

SELECT p.pid, p.queued,t.approved, t.forum_id FROM ibf_posts p LEFT JOIN ibf_topics t ON ( p.topic_id=t.tid ) WHERE t.forum_id IN (354,232,233,234,235,236,237,238,239,240,273,274,275,276,267,268,269,35,36,332,165,181,93,118,43,37,49,89,42,38,47,52,58,86,87,136,135,152,153,183,325,326,327,334,336,338,345,346,352,356,229,230,179,75,106,71,73,83,74,84,155,156,138,139,140,328,141,142,143,144,145,146,147,278,216,176,339,335,80,90,192,193,194,195,231,330,160,161,298,162,225,303,59,60,282,178,169,170,171,56,358,217,218,219,220,221,222,223,224,333,109,206,207,208,209,258,297,210,211,212,213,214,226,215,319,227,172,307,119,120,151,121,122,123,124,125,158,305,304,306,201,202,203,322,323,324,348,310,315,316,314,317,318,228,349,350,351,296,308,301,299,256,204,205,280,281,300,241,251,16,41,92,173,262,287,2,32,29,277,312,39,50,9,10,25,34,31,4,5,15,46,78,40,81,112,129,18,48,27,23,22,157,79,167,105,33,175,91,128,174,329,131,130,134,242,353,243,343,342,244,245,344,246,248,249,288,252,253,254,111,168,127,7,19,264,265,8,11,76,359,270,271,12,51,13,309,283,284,285,286,355,365,362,364) AND p.queued=0 AND t.approved=1 AND t.topic_archive_status IN (0,3) AND MATCH( p.post ) AGAINST( 's*t*o*r*m' IN BOOLEAN MODE ) AND t.state != 'link' ORDER BY post_date desc LIMIT 0,500

 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Звездочка при полнотекстовом поиске означает любой набор алфавитно-цифровых символов. Проблема решается отключением полнотекстового поиска. Можно еще попробовать экранировать звездочки \ или кавычками . 

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Звездочка при полнотекстовом поиске означает любой набор алфавитно-цифровых символов. Проблема решается отключением полнотекстового поиска. Можно еще попробовать экранировать звездочки \ или кавычками . 

Если отключить полнотекстовый поиск, то сам поиск начинает подтормаживать, правда, не подвешивая всё остальное. Видимо, выход в экранировании. А как его правильно сделать?

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Если отключить полнотекстовый поиск, то сам поиск начинает подтормаживать

Все равно рано или поздно придется отключать. По мере роста таблицы сообщений, время добавления нового сообщения будет расти в геометрической прогрессии.

выход в экранировании. А как его правильно сделать?

str_replace() на * :offtop:

Изменено пользователем FatCat
Ссылка на комментарий
Поделиться на других сайтах

  • 0
Все равно рано или поздно придется отключать. По мере роста таблицы сообщений, время добавления нового сообщения будет расти в геометрической прогрессии.

 

Не придётся. Этих сообщений давно за 4 миллиона перевалило ))). Но ничего не тормозит.

str_replace() на *  :offtop:

 

Это понятно, имелось ввиду - где перехватывать эту строку в коде.

Изменено пользователем ipb323
Ссылка на комментарий
Поделиться на других сайтах

  • 0

где перехватывать эту строку в коде

У меня ipb 1.3, я бы перехватывал в search.php, хотя можно и в mySQL.php.

В старших версиях всё иначе наверное.

 

Посмотреть куда форма критериев поиска отправляет, и там перехватывать.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.