rtyug

rtyug
Рейтинг
263
Регистрация
13.05.2009
Должность
perl,php,sql,javascript(jquery),freebsd/linux
Интересы
perl,php,sql,javascript(jquery),freebsd/linux
https://minfin.com.ua/blogs/94589307/115366/

сколько там комментариев? 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" (в разработке)

Всего: 2062