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

📄 segmentstermenum.pm

📁 Plucene-1.25.tar.gz PERL版本的lucene
💻 PM
字号:
package Plucene::Index::SegmentsTermEnum;=head1 NAMEPlucene::Index::SegmentsTermEnum=head1 METHODS=head2 new / term / doc_freq / next as per TermEnum=cut# This only appears to be used with doing wildcard searches.use strict;use warnings;use Tie::Array::Sorted;use Plucene::Index::SegmentMergeInfo;sub term     { $_[0]->{term} }sub doc_freq { $_[0]->{doc_freq} }sub new {	my ($class, $readers, $starts, $t) = @_;	tie my @queue, "Tie::Array::Sorted";	for my $i (0 .. $#{$readers}) {		my $reader    = $readers->[$i];		my $term_enum = $reader->terms($t);		my $smi       =			Plucene::Index::SegmentMergeInfo->new($starts->[$i], $term_enum,			$reader);		if (!$t ? $smi->next : $term_enum->term) {    # ???			push @queue, $smi;		}	}	my $self = bless { queue => \@queue }, $class;	if ($t and @queue) {		my $top = $queue[0];		$self->{term}     = $top->term_enum->term;		$self->{doc_freq} = $top->term_enum->doc_freq;	}	return $self;}sub next {	my $self = shift;	my $top  = $self->{queue}[0];	if (!$top) {		undef $self->{term};		return;	}	$self->{term}     = $top->term;	$self->{doc_freq} = 0;	while ($top && $self->{term}->eq($top->term)) {		$self->{doc_freq} += $top->term_enum->doc_freq;		# This might look funny, but it's right. The pop takes $top off		# the queue, and when it has ->next called on it, its comparison		# value changes; the queue is tied as a Tie::Array::Sorted, so		# when it gets added back on, it may be put somewhere else.		pop @{ $self->{queue} };		if ($top->next) {			unshift @{ $self->{queue} }, $top;		}		$top = $self->{queue}[0];	}	return 1;}1;

⌨️ 快捷键说明

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