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

📄 segmentinfos.pm

📁 Plucene-1.25.tar.gz PERL版本的lucene
💻 PM
字号:
package Plucene::Index::SegmentInfos;=head1 NAMEPlucene::Index::SegmentInfos - A collection of SegmentInfo objects=head1 SYNOPSIS	my $segmentinfos = Plucene::Index::SegmentInfos->new;	$segmentinfos->read($dir);	$segmentinfos->write($dir);	$segmentinfos->add_element(Plucene::Index::SegmentInfo $segment_info);	my Plucene::Index::SegmentInfo @segment_info 		= $segmentinfos->segments; =head1 DESCRIPTIONThis is a collection of Plucene::Index::SegmentInfo objects=head1 METHODS=cutuse strict;use warnings;use Carp;use Plucene::Index::SegmentInfo;use Plucene::Store::InputStream;use Plucene::Store::OutputStream;use File::Slurp;=head2 new	my $segmentinfos = Plucene::Index::SegmentInfos->new;This will create a new (empty) Plucene::Index::SegmentInfos object.=cutsub new { bless { segments => [] }, shift }=head2 read	$segmentinfos->read($dir);This will read the segments file from the passed directory.=cutsub read {	my ($self, $directory) = @_;	my ($count, @unpack) = unpack "NN/(w/aN)", read_file("$directory/segments");	my @segs;	while (my ($name, $count) = splice @unpack, 0, 2) {		push @segs,			bless {			name      => $name,			doc_count => $count,			dir       => $directory,			} => 'Plucene::Index::SegmentInfo';	}	$self->{segments} = \@segs;	$self->{counter}  = $count;}=head2 write	$segmentinfos->write($dir);This will write the segments info file out.=cutsub write {	my ($self, $directory) = @_;	my $segfile  = "$directory/segments";	my $tempfile = "${segfile}.new";	my @segs     = $self->segments;	my $template = "NN" . ("w/a*N" x @segs);	my $packed   = pack $template, $self->{counter} || 0, scalar @segs,		map { $_->name => $_->doc_count } @segs;	write_file($tempfile => $packed);	rename($tempfile => $segfile);}=head2 add_element	$segmentinfos->add_element(Plucene::Index::SegmentInfo $segment_info);This will add the passed Plucene::Index::SegmentInfo object..=cutsub add_element { push @{ $_[0]->{segments} }, $_[1] }=head2 info	my Plucene::Index::SegmentInfo $info 		= $segmentinfos->info($segment_no);This will return the Plucene::Index::SegmentInfo object at the passed segment number.=cutsub info { $_[0]->{segments}->[ $_[1] ] }=head2 segments	my Plucene::Index::SegmentInfo @segment_info 		= $segmentinfos->segments; This returns all the Plucene::Index::SegmentInfo onjects in this segment.=cutsub segments { @{ $_[0]->{segments} } }1;

⌨️ 快捷键说明

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