Перейти к контенту
  • 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.

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

 

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

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

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

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

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

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

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

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

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

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

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

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

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