package Search::Xapian::TermGenerator; use 5.006; use strict; use warnings; require DynaLoader; our @ISA = qw(DynaLoader); # Preloaded methods go here. # In a new thread, copy objects of this class to unblessed, undef values. sub CLONE_SKIP { 1 } use overload '=' => sub { $_[0]->clone() }, 'fallback' => 1; sub clone() { my $self = shift; my $class = ref( $self ); my $copy = new2( $self ); bless $copy, $class; return $copy; } sub new() { my $class = shift; my $tg = new0(); bless $tg, $class; return $tg; } 1; __END__ =head1 NAME Search::Xapian::TermGenerator - Parses a piece of text and generates terms. =head1 DESCRIPTION This module takes a piece of text and parses it to produce words which are then used to generate suitable terms for indexing. The terms generated are suitable for use with L objects produced by the L class. =head1 SYNOPSIS use Search::Xapian; my $doc = new Search::Xapian::Document(); my $tg = new Search::Xapian::TermGenerator(); $tg->set_stemmer(new Search::Xapian::Stem("english")); $tg->set_document($doc); $tg->index_text("The cat sat on the mat"); =head1 METHODS =over 4 =item new TermGenerator constructor. =item set_stemmer Set the L object to be used for generating stemmed terms. =item set_stopper Set the L object to be used for identifying stopwords. =item set_document Set the L object to index terms into. =item get_document Get the currently set L object. =item index_text [ []] Indexes the text in string . The optional parameter sets the wdf increment (default 1). The optional parameter sets the term prefix to use (default is no prefix). =item index_text_without_positions [ []] Just like index_text, but no positional information is generated. This means that the database will be significantly smaller, but that phrase searching and NEAR won't be supported. =item increase_termpos [] Increase the termpos used by index_text by (default 100). This can be used to prevent phrase searches from spanning two unconnected blocks of text (e.g. the title and body text). =item get_termpos Get the current term position. =item set_termpos Set the current term position. =item get_description Return a description of this object. =back =head1 REFERENCE http://www.xapian.org/docs/sourcedoc/html/classXapian_1_1TermGenerator.html =cut