Вы не зашли.
    
        
        
                         #1.
            TLENS
                                                Off
                        #1.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2012.07.01 10:10
                                                
                                                        
 
                И это все mysql. Вот как организовать поиск по сайту я хз.
Может просто сделать толковый ситемап скормить его гуглу и воспользоватся гугловским поиском? Как такая идея?
        
        
                
    
 
        
        
                сторонними поисковиками многое пользуются. а то, что нагрузка 80-100%, вероятно, следствие плохой архитектуры. поиск, небось, через LIKE ведется?
        
        
                
    
 
        
        
                         #3.
            TLENS
                                                Off
                        #3.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2012.07.01 16:04
                                                
                                                        
 
                Именно через него вот код запроса
Код:
| lt;?        $query = preg_replace('/[^a-zA-Zа-яА-ЯёЁ0-9]/u', ' ', @$_GET['query']);        $like_arr  = explode(' ', preg_replace('/\s+/', ' ', $query));        $like = '';        $query = '';        $true = '';        $i = 0;        foreach ($like_arr as $v) {            $v = trim($v);            if (mb_strlen($v)>=3) {            if (++$i > 10) break;                $like .= " `info` LIKE ('%$v%') &&";                $query .= ', '. $v;            }        }        $like  = substr($like, 0, -3);        $query = substr($query, 2);        $navig = new Navig("SELECT COUNT(*) FROM `" . Config::$action . "` WHERE{$like} AND `delete` = 0", @$_GET['page'], '?query=' . urlencode($query) . '&page={page}', 10);        $qin = mysql_query("SELECT * FROM `" . Config::$action . "` WHERE{$like} AND `delete` = 0 ORDER BY `rating` DESC LIMIT " . $navig->limit); | 
 
        
        
                         #4.
            TLENS
                                                Off
                        #4.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2012.07.01 16:04
                                                
                                                        
 
                САм знаю что ужасен но не думал что на столько
Добавлено спустя    34 секунды: Да и вообще я в mysql не очень все ленюсь почитать про нее
        
        
                
    
 
        
        
                LIKE подобным образом на любой субд работает. Как частичное решение - убери первый процент в LIKE, чтобы начало было жестко определено. В таком случае не будет перебора, а будет использоваться индекс на `info`. Ну, и само собой, если индекса нету - поставить.
        
        
                
    
 
        
        
                         #6.
            tipsun
                                                Off
                        #6.
            tipsun
                                                Off
                
                                                    (19)
                                                            
                        Moderator
                        2012.07.01 18:06
                                                
                                                        
 
                Вроде как сфинкс система есть, вам естественно лучше знать.
        
        
                
    
 
        
        
                         #7.
            TLENS
                                                Off
                        #7.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2012.07.01 20:08
                                                
                                                        
 
                tipsunКогда то пытался с ним подружится но потом забил. Все вроде норм было.
Добавлено спустя   1 минуту  3 секунды: GemorrojСпасибо сейчас так и сделаю.
Решил переписать все и дополнение написать на си вообщем сгрузить всю базу в оперативку.
        
        
                
    
 
        
        
                         #8.
            TLENS
                                                Off
                        #8.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2012.07.02 06:06
                                                
                                                        
 
                Gemorroj написал:
LIKE подобным образом на любой субд работает. Как частичное решение - убери первый процент в LIKE, чтобы начало было жестко определено. В таком случае не будет перебора, а будет использоваться индекс на `info`. Ну, и само собой, если индекса нету - поставить.
Заменил вчера и пошел спать сегодня посмотрел оно вообще не находит если более одного слова в поиске
        
        
                
    
 
        
        
                         #9.
            TLENS
                                                Off
                        #9.
            TLENS
                                                Off
                
                                                    (14)
                                                            
                        Moderator
                        2012.07.02 06:06
                                                
                                                        
 
                TLENS написал:Gemorroj написал:
LIKE подобным образом на любой субд работает. Как частичное решение - убери первый процент в LIKE, чтобы начало было жестко определено. В таком случае не будет перебора, а будет использоваться индекс на `info`. Ну, и само собой, если индекса нету - поставить.
Заменил вчера и пошел спать сегодня посмотрел оно вообще не находит если более одного слова в поиске. А поиск и правда заметно ускорился
 
        
        
                
     
        
        
                TLENS, ну епт..
SELECT * FROM `table` WHERE `info` LIKE "test%" OR `info` LIKE "some%";