скорее всего.
админка мне чужда - я ручками в коде привык ковыряться.
скажем так - я облазил /engine/modules/search.php и не нашел там ниодного MATCH - только LIKE.
netwind, огромнейшее вам спасибо. вы дали мне направление - я поколупался в коде. ДЛЕ на самом деле ищет по LIKE. Я ручками переписал поиск на MATCH.... AGAINST.
Поиск начал в 3 раза быстрее работать.
вот что было:
short_story LIKE '%{story}%' OR full_story LIKE '%{story}%' OR xfields LIKE '%{story}%' OR title LIKE '%{story}%'
по полям short_story,full_story,xfields,title есть FULLTEXT индекс, который разработчики ДЛЕ изначально сделали, но не используют по каким-то причинам в поиске.
а вот что я сделал:
MATCH (short_story,full_story,xfields,title) AGAINST ('{story}')
поправьте меня - это ведь фактически эквивалентные запросы?
netwind,
SELECT COUNT(*) AS count FROM dle_post WHERE dle_post.approve AND (short_story LIKE '%пиранья%' OR full_story LIKE '%пиранья%' OR title LIKE '%пиранья%')SELECT id, autor, dle_post.date AS newsdate, dle_post.date AS date, short_story AS story, dle_post.xfields AS xfields, title, descr, keywords, category, alt_name, comm_num AS comm_in_news, allow_comm, rating, news_read, flag, editdate, editor, reason, view_edit, tags, '' AS output_comms FROM dle_post WHERE dle_post.approve AND (short_story LIKE '%пиранья%' OR full_story LIKE '%пиранья%' OR title LIKE '%пиранья%') ORDER BY date desc LIMIT 0,20
этот
netwind, и не только кнопочки :)
Попытаюсь немного пролить свет: стандартный поиск в ДЛЕ по ооочень большой базе. Работает крайне медленно по сравнению с остальной частью сайта. Вот и ищется решение.
535i добавил 20.01.2011 в 23:46
Дополню:
ДЛЕ при стандартном поиске использует конструкцию
SELECT **** WHERE dle_post.approve AND (short_story LIKE '%фраза%' OR full_story LIKE '%фраза%' OR title LIKE '%фраза%') ***
в мануалах к мускулю сказано, что "В команде величина LIKE начинается с шаблонного символа..." (т.е., знак процента "%") и как результат "команды SELECT не будут использовать индексы" :( :( (а они то есть, только тупо не используются из-за особенности мускуля).
поэтому вся затыка - как я уже писал, база огромная, траф большой.
даже если кешировать результаты поиска в кеше мускуля - этого на долго не хватает (любой INSERT вычищает кеш).
в общем, ищется РЕШЕНИЕ.
ткните носом в примеры прикручивания сфинкса к двигу дле
тому, кто пукнул мне в овощ, объясняю: я написал в теме домен только после того, как он баню отловил - тут уже и палить можно (т.е. монопенисуально). и саппорт отреагировал.
а в общем, мне всё равно - если уровень интеллекта не позволяет сделать выводы - как говориться, горбатого могила вылечит :)
_depositfiles-dl81.net каспер спалил :(
CrazyMyxa, дайте товар посмотреть и стату.
manag3r, если дейликешевский модуль используешь - там во многих местах править надо (одним комментом не обойдешься - стукни в личку, договоримся).
если руки правильные - в енжине/модулес/дс_модуль.пхп в 3-х местах закомментируй код:
if($tpl->result['info']) $tpl->result['info'] = $tpl->result['dailycash'].$tpl->result['info']; else $tpl->result['content'] = $tpl->result['dailycash'].$tpl->result['content'];
manag3r, это у них мускуль по некоторым запросам выгоняет - если в запросе например апостроф или знак процента есть - т.е., запрещенные символы в запросе (по докам мускуля).