сколько там комментариев? MyISAM INNODB?
вродебы как на MyISAM подсчет в 40-60k не ресурсоемко (точно не скажу, не тестировал, лень)
можно смотреть, логировать запросы которые дольше всего выполняются и их оптимизировать ПОТОМ (а не наоборот)
в phpbb2 был подсчет всего без счетчиков, на ходу...
ну и можно использовать memchache (пересчитывать, например, раз за 1-5-15 мин.)
можно и триггеры...
фото альбом пишется за 2-3 дня, но со всем прибамбасами супер-супер может 1-2-3 недели...
вы делаете проблему на фото альбоме?
Gallery2 переносимый монстр для настроек на все случаи жизни...
Gallery3 не видел, но как видно что он еще больше...
вы написали что хотите расширять, и какой-то там интернет магазин...
но все таки ковырятся и расширять Gallery2 - это хуже чем садо-мазо...
надо использовать правильную систему!!
новая версия FreeBSD 50.0 CURRENT beta 2
(нету вирусов)
Wispoz, это просто подсветка?
мне нужно то чт оя написал в первом посте, т.е. т.н. "сниппеты"
но за подсветку, спасибо!
наверное, хотя http://ru.wikipedia.org/wiki/%D0%A1%D0%BD%D0%B8%D0%BF%D0%BF%D0%B5%D1%82
не похоже, но просто красиво обработать найденный текст как делают поисковые системы
я попробую то что Wispoz написал, может это именно оно, хотя там demo нету, не понятно как оно будет....
...или может действительно Sphinx или Яндекс-поиск и т.д. чтобы не париться (хотя повторюсь: что PgSQL отлично выводит...)
Wispoz, спасибо, попробую...
DeveloperRu, забыл отписаться, вот: http://www.x0.org.ua/view_content/84
я только не помню какая там версия, вродебы это последний мой...
rtyug добавил 14.06.2010 в 22:31
##### ## ## nice find (beautiful search engine) ## ##### # $content - весь контент # $word_all - поисковая фраза # $max_world - число слов на которые должно быть разбита каждая строка ## PS все остальное сложно обяснить, все должно быть понятно # $ Content - all content # $ Word_all - Keyword # $ Max_world - the number of words that should be broken down each row ## PS explained to all the rest is difficult, all should be clear # $c->model('Quantum')->super_max($found) : # find the maximum value in the array # 1) the imaginary part of the value contains the array index # 1,a) to the imaginary part of this figure matches the index # 2) are removed before searching potornye values that occur the # same number of times (the same number of matches) sub Quantum_Search : Privat { my ( $self, $c, $content, $word_all ) = @_; my $max_world = 25; $content =~ tr/ / /s; my $words; $word_all = Encode::encode( 'utf8', $word_all ); @$words = split( / /, $word_all ); my $word_one; $word_one->[0] = $word_all; my $hh; foreach my $my ( split( / /, $content ) ) { if ( $my && $my ne '' ) { push @$hh, $my; } } my $max_line = sprintf( '%.f', scalar(@$hh) / $max_world ); my $aa2; my $i = 0; for ( 0 .. $max_line ) { $i = $_ * $max_world; $aa2->[$_] = join( " ", @{$hh}[ $i .. ( $i + $max_world ) ] ) if ( @{$hh}[ $i .. ( $i + $max_world ) ] ); } my $found = $c->forward( 'super_for', [ $aa2, $word_one ] ); my $out; %$out = (); $out = $c->forward( 'out_hash', [ $found, $out ] ); if ( scalar( keys %$out ) < 2 ) { $found = $c->forward( 'super_for', [ $aa2, $words ] ); $out = $c->forward( 'out_hash', [ $found, $out ] ); } my $search = ' '; if ( scalar( keys %$out ) == 0 ) { $search = ' ... ' . $aa2->[0]; } else { foreach my $key ( keys %$out ) { $search .= ' ... ' . $aa2->[$key]; } } return $search; } sub out_hash : Privat { my ( $self, $c, $found, $out ) = @_; my @f; my $count = 0; while (1) { $count++; @f = $c->model('Quantum')->super_max($found); last if ( !@f ); my ( $it, $ti ) = $f[0] =~ /(\d+).(\d+)/; last if ( !$it || $it == 0 ); $out->{$ti} = $it; splice @$found, $ti, 1; last if ( $count == 3 ); } return $out; } sub super_for : Privat { my ( $self, $c, $aa2, $words ) = @_; my $found; foreach my $co ( 0 .. scalar(@$aa2) ) { foreach my $word (@$words) { if ( $aa2->[$co] && $word && $aa2->[$co] =~ /$word/i ) { if ( $found->[$co] ) { my ( $it, $ti ) = $found->[$co] =~ /(\d+).(\d+)/; $found->[$co] = ( $it + 1 ); $found->[$co] .= '.'; $found->[$co] .= $co; } else { $found->[$co] = '1.'; $found->[$co] .= $co; } } else { if ( !$found->[$co] ) { $found->[$co] = '0.'; $found->[$co] .= $co; } } } } return $found; } =head1 AUTHOR Dmitriy email: q7u5@ukr.net www: http://www.x0.org.ua =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;
@f = $c->model('Quantum')->super_max($found);
package MyApp::Model::Quantum; use strict; use warnings; use parent 'Catalyst::Model'; use Quantum::Superpositions; sub super_max { my ( $self, $found ) = @_; # find the maximum value in the array # 1) the imaginary part of the value contains the array index # 1,a) to the imaginary part of this figure matches the index # 2) are removed before searching potornye values that occur the # same number of times (the same number of matches) my $super; foreach (@$found) { # 1) the imaginary part of the value contains the array index # 1,a) to the imaginary part of this figure matches the index my ( $it, $ti ) = $_ =~ /(\d+).(\d+)/; next if ( $it == 0 ); # 2) are removed before searching potornye values that occur # the same number of times (the same number of matches) $super->{$it} = $_; } my $fo; @$fo = map +( $super->{$_} ), keys %$super; # # find the maximum value in the array my @f = eigenstates( any(@$fo) >= all(@$fo) ); return @f; } =head1 NAME MyApp::Model::Quantum - Catalyst Model =head1 DESCRIPTION Catalyst Model. =head1 AUTHOR Dmitriy email: q7u5@ukr.net WWW: http://www.x0.org.ua =head1 LICENSE This library is free software. You can redistribute it and/or modify it under the same terms as Perl itself. =cut 1;
а есть ли такой скрипт готовый, чтобы оно выводило как yandex и google?
я это не нашел...
(обработка длиного текста всегда ресурсоемкая операция... тем более больших статей 10-20)
...тогда лучше наверное взять Sphinx, Яндекс-поиск и т.д.
MOP1, JS на клиенте и грузить сервер не будет... а причем тут процедура?
я написал скрипт на сервере и обработка по большим 10-20 статьям заняла 10-20 сек. и грузила CPU сервера!!
я вот подумал: почему бы не обработать на js этот текст на клиенте?
...но я так понял что такой библиотеки нету...
надо будет изобретать:) еще подумаю, стоит ли....
понятно, спасибо, знаю: Sphinx, Яндекс-поиск и т.д. есть еще...
в серверной обработке стоит PgSQL, прямо в нем есть релевантность, русская морфология... и т.д. (самое главное хорошо работает поиск по больших таблицах в PgSQL, в отличае от MySQL по крайней мере как я понял)
=====
почему бы этот текст (статью, статьи) который возвращает PgSQL не распарсить на JS??
поиск и обработка длинного текста очень ресурсоемкая операция, занимает по длинной статье 5-20 сек. и грузить CPU на сервере...
может есть такая реализация на JS, или нету смысла реализовывать?
вот я хочу написать социальную сеть, мультимедиа портал...
http://www.x0.org.ua/
http://www.x0.org.ua/view_global_section главные разделы
http://www.x0.org.ua/view_section/178 раздел
http://www.x0.org.ua/view_content/48 контент
http://www.x0.org.ua/video посленнее видео
http://www.x0.org.ua/video_album/3 видео альбом
http://www.x0.org.ua/video/view/3/52 видео клип
http://www.x0.org.ua/photo посленнее фотографии
http://www.x0.org.ua/photo_album/34 фото альбом
http://www.x0.org.ua/photo/view/34/203 фотографию
http://www.x0.org.ua/profile/view_profile/1 профиль пользователя
http://www.x0.org.ua/blog последние обновленные блоги
http://www.x0.org.ua/blog/user/1 блог пользователя
http://www.x0.org.ua/blog/user/1/view/2 запись в блоге
http://www.x0.org.ua/chat чат
http://www.x0.org.ua/groups группы (в разработке, с конструктором для создания социальных сетей, наподобе как "Мой круг")
"Вопрос - ответ" (в разработке)
"Новости" (в разработке)
"mp3 Music" (в разработке)