⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 segmenttermenum.pm

📁 Plucene-1.25.tar.gz PERL版本的lucene
💻 PM
字号:
package Plucene::Index::SegmentTermEnum;=head1 NAME Plucene::Index::SegmentTermEnum - Segment term enum=head1 SYNOPSIS	my $seg_term_enum = Plucene::Index::SegmentTermEnum	 	->new(  Plucene::Store::InputStream $i, 			Plucene::Index::FieldInfos  $fi, 			$is_index);	my $clone = $seg_term_info->clone;	my Plucene::Index::Term $term = $seg_term_enum->read_term;	$seg_term_info->seek($ptr, $position, $term, $term_info);	$seg_term_enum->prev;	$seg_term_enum->next;=head1 DESCRIPTIONThis is the segment term enum class.=head1 METHODS=cutuse strict;use warnings;use Plucene::Index::TermInfo;use Plucene::Index::Term;use base 'Class::Accessor::Fast';__PACKAGE__->mk_accessors(qw(term term_info index_pointer size position));=head2 new	my $seg_term_enum = Plucene::Index::SegmentTermEnum	 	->new(  Plucene::Store::InputStream $i, 			Plucene::Index::FieldInfos  $fi, 			$is_index);=head2 term / term_info / index_pointer / size / position 	/ doc_freq / freq_pointer / prox_pointerGet / set these attributes.			=cutsub doc_freq     { shift->{term_info}->doc_freq(@_) }sub freq_pointer { shift->{term_info}->freq_pointer(@_) }sub prox_pointer { shift->{term_info}->prox_pointer(@_) }# term_info must return a clonesub new {	my ($class, $i, $fis, $is_i) = @_;	bless {		input       => $i,		field_infos => $fis,		is_index    => $is_i,		position    => -1,		term        => Plucene::Index::Term->new(),		term_info   => Plucene::Index::TermInfo->new(),		size        => $i->read_int	}, $class;}=head2 clone	my $clone = $seg_term_info->clone;=cutsub clone {	my $self = shift;	my $clone = bless { %$self, input => $self->{input}->clone, }, ref $self;	$clone->{buffer} = $self->{term}->text if $self->{term};	return $clone;}=head2 seek	$seg_term_info->seek($ptr, $position, $term, $term_info);=cutsub seek {	my ($self, $ptr, $p, $t, $ti) = @_;	$self->{input}->seek($ptr, 0);	$self->{position} = $p;	$self->{term}     = $t;	undef $self->{prev};	$self->{term_info} = $ti->clone;	$self->{buffer}    = $t->text;}=head2 prev / next	$seg_term_enum->prev;	$seg_term_enum->next;=cutsub prev { return $_[0]->{prev} }sub next {	my $self = shift;	if ($self->{position}++ >= $self->{size} - 1) {		undef $self->{term};		return;	}	$self->{prev}                  = $self->{term};	$self->{term}                  = $self->read_term();	$self->{term_info}->{doc_freq} = $self->{input}->read_vint;	$self->{term_info}->{freq_pointer} += $self->{input}->read_vlong;	$self->{term_info}->{prox_pointer} += $self->{input}->read_vlong;	$self->{index_pointer} += $self->{input}->read_vlong if $self->{is_index};	return 1;}=head2 read_term	my Plucene::Index::Term $term = $seg_term_enum->read_term;=cutsub read_term {	my $self   = shift;	my $start  = $self->{input}->read_vint();	my $length = $self->{input}->read_vint();	$self->{buffer} ||= " " x $length;	$self->{input}->read(substr($self->{buffer}, $start, $length), $length);	$self->{buffer} = substr($self->{buffer}, 0, $start + $length);	return bless {		text  => $self->{buffer},		field => $self->{field_infos}->field_name($self->{input}->read_vint),	} => 'Plucene::Index::Term';}1;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -