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

📄 fieldsreader.pm

📁 Plucene-1.25.tar.gz PERL版本的lucene
💻 PM
字号:
package Plucene::Index::FieldsReader;=head1 NAME Plucene::Index::FieldsReader - read Fields in a Document=head1 SYNOPSIS	my $reader = Plucene::Index::FieldsReader->new(		$dir_name, $segment, $field_infos);	my Plucene::Document $doc = $reader->doc($offset);	my $size = $reader->size;=head1 DESCRIPTIONThis class gives access to documents within the index.=head1 METHODS=cutuse strict;use warnings;use Plucene::Document;use Plucene::Document::Field;use Plucene::Store::InputStream;=head2 new	my $reader = Plucene::Index::FieldsReader->new(		$dir_name, $segment, $field_infos);This will create a new Plucene::Index::FieldsReader with the passed in directory name, segment and field infos.		=cutsub new {	my ($class, $dir, $seg, $fn) = @_;	bless {		field_infos => $fn,		fields      => Plucene::Store::InputStream->new("$dir/$seg.fdt"),		index       => Plucene::Store::InputStream->new("$dir/$seg.fdx"),		size        => ((-s "$dir/$seg.fdx") / 8) }, $class;}=head2 size	my $size = $reader->size;This returns the size.=cutsub size { $_[0]->{size} }=head2 doc	my Plucene::Document $doc = $reader->doc($offset);This will return the Plucene::Document object found at the passed inposition.=cutsub doc {	my ($self, $n) = @_;	$self->{index}->seek($n * 8, 0);	my $pos = $self->{index}->read_long;	$self->{fields}->seek($pos, 0);	my $doc = Plucene::Document->new();	for (1 .. $self->{fields}->read_vint) {		my $fi = $self->{field_infos}->{bynumber}->[ $self->{fields}->read_vint ];		my $bits = $self->{fields}->read_byte;		$doc->add(			bless {				name         => $fi->name,				string       => $self->{fields}->read_string,				is_stored    => 1,				is_indexed   => $fi->is_indexed,				is_tokenized => (($bits & 1) != 0)              # No, really				} => 'Plucene::Document::Field'		);	}	return $doc;}1;

⌨️ 快捷键说明

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