File: //usr/share/perl5/Plucene/Document/Field.pm
package Plucene::Document::Field;
=head1 NAME
Plucene::Document::Field - A field in a Plucene::Document
=head1 SYNOPSIS
my $field = Plucene::Document::Field->Keyword($name, $string);
my $field = Plucene::Document::Field->Text($name, $string);
my $field = Plucene::Document::Field->UnIndexded($name, $string);
my $field = Plucene::Document::Field->UnStored($name, $string);
=head1 DESCRIPTION
Each Plucene::Document is made up of Plucene::Document::Field
objects. Each of these fields can be stored, indexed or tokenised.
=head1 FIELDS
=cut
use strict;
use warnings;
use base qw(Class::Accessor::Fast);
__PACKAGE__->mk_accessors(
qw(name string is_stored is_indexed is_tokenized reader));
=head2 name
Returns the name of the field.
=head2 string
Returns the value of the field.
=head2 is_stored
Returns true if the field is or will be stored, or false if it was
created with C<UnStored>.
=head2 is_indexed
Returns true if the field is or will be indexed, or false if it was
created with C<UnIndexed>.
=head2 is_tokenized
Returns true if the field is or will be tokenized, or false if it was
created with C<UnIndexed> or C<Keyword>.
=cut
use Carp qw(confess);
=head1 METHODS
=head2 Keyword
my $field = Plucene::Document::Field->Keyword($name, $string);
This will make a new Plucene::Document::Field object that is stored
and indexed, but not tokenised.
=cut
sub Keyword {
my ($self, $name, $string) = @_;
return $self->new({
name => $name,
string => $string,
is_stored => 1,
is_indexed => 1,
is_tokenized => 0
});
}
=head2 UnIndexed
my $field = Plucene::Document::Field->UnIndexded($name, $string);
This will make a new Plucene::Document::Field object that is stored, but
not indexed or tokenised.
=cut
sub UnIndexed {
my ($self, $name, $string) = @_;
return $self->new({
name => $name,
string => $string,
is_stored => 1,
is_indexed => 0,
is_tokenized => 0
});
}
=head2 Text
my $field = Plucene::Document::Field->Text($name, $string);
This will make a new Plucene::Document::Field object that is stored,
indexed and tokenised.
=cut
sub Text {
my ($self, $name, $string) = @_;
return $self->new({
name => $name,
string => $string,
is_stored => 1,
is_indexed => 1,
is_tokenized => 1
});
}
=head2 UnStored
my $field = Plucene::Document::Field->UnStored($name, $string);
This will make a new Plucene::Document::Field object that isn't stored,
but is indexed and tokenised.
=cut
sub UnStored {
my ($self, $name, $string) = @_;
return $self->new({
name => $name,
string => $string,
is_stored => 0,
is_indexed => 1,
is_tokenized => 1
});
}
1;