Xapian::Stem Class Reference

Class representing a stemming algorithm. More...

#include <stem.h>

Collaboration diagram for Xapian::Stem:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Stem (const Stem &o)
 Copy constructor.
void operator= (const Stem &o)
 Assignment.
 Stem ()
 Construct a Xapian::Stem object which doesn't change terms.
 Stem (const std::string &language)
 Construct a Xapian::Stem object for a particular language.
 Stem (StemImplementation *p)
 Construct a Xapian::Stem object with a user-provided stemming algorithm.
 ~Stem ()
 Destructor.
std::string operator() (const std::string &word) const
 Stem a word.
std::string get_description () const
 Return a string describing this object.

Static Public Member Functions

static std::string get_available_languages ()
 Return a list of available languages.

Private Attributes

Xapian::Internal::RefCntPtr
< StemImplementation
internal


Detailed Description

Class representing a stemming algorithm.

Definition at line 47 of file stem.h.


Constructor & Destructor Documentation

Xapian::Stem::Stem ( const Stem o  ) 

Copy constructor.

Definition at line 38 of file stem.cc.

Xapian::Stem::Stem (  ) 

Construct a Xapian::Stem object which doesn't change terms.

Equivalent to Stem("none").

Definition at line 46 of file stem.cc.

Xapian::Stem::Stem ( const std::string &  language  )  [explicit]

Construct a Xapian::Stem object for a particular language.

Parameters:
language Either the English name for the language or the two letter ISO639 code.
The following language names are understood (aliases follow the name):

  • none - don't stem terms
  • danish (da)
  • dutch (nl)
  • english (en) - Martin Porter's 2002 revision of his stemmer
  • english_lovins (lovins) - Lovin's stemmer
  • english_porter (porter) - Porter's stemmer as described in his 1980 paper
  • finnish (fi)
  • french (fr)
  • german (de)
  • german2 - Normalises umlauts and ß
  • hungarian (hu)
  • italian (it)
  • kraaij_pohlmann - A different Dutch stemmer
  • norwegian (nb, nn, no)
  • portuguese (pt)
  • romanian (ro)
  • russian (ru)
  • spanish (es)
  • swedish (sv)
  • turkish (tr)

Exceptions:
Xapian::InvalidArgumentError is thrown if language isn't recognised.

Definition at line 48 of file stem.cc.

Xapian::Stem::Stem ( StemImplementation p  )  [explicit]

Construct a Xapian::Stem object with a user-provided stemming algorithm.

You can subclass Xapian::StemImplementation to implement your own stemming algorithm (or to wrap a third-party algorithm) and then wrap your implementation in a Xapian::Stem object to pass to the Xapian API.

Parameters:
p The user-subclassed StemImplementation object. This is reference counted, and so will be automatically deleted by the Xapian::Stem wrapper when no longer required.

Definition at line 175 of file stem.cc.

Xapian::Stem::~Stem (  ) 

Destructor.

Definition at line 177 of file stem.cc.


Member Function Documentation

string Xapian::Stem::get_available_languages (  )  [static]

Return a list of available languages.

Each stemmer is only included once in the list (not once for each alias). The name included is the English name of the language.

The list is returned as a string, with language names separated by spaces. This is a static method, so a Xapian::Stem object is not required for this operation.

Definition at line 200 of file stem.cc.

References LANGSTRING.

Referenced by DEFINE_TESTCASE(), and main().

string Xapian::Stem::get_description (  )  const

Return a string describing this object.

Definition at line 187 of file stem.cc.

Referenced by DEFINE_TESTCASE().

string Xapian::Stem::operator() ( const std::string &  word  )  const

Stem a word.

Parameters:
word a word to stem.
Returns:
the stem

Definition at line 180 of file stem.cc.

void Xapian::Stem::operator= ( const Stem o  ) 

Assignment.

Definition at line 41 of file stem.cc.

References internal.


Member Data Documentation

For internal use only.

Reference counted internals.

Definition at line 50 of file stem.h.

Referenced by Xapian::TermGenerator::Internal::index_text(), and operator=().


The documentation for this class was generated from the following files:

Documentation for Xapian (version 1.2.13).
Generated on 9 Jan 2013 by Doxygen 1.5.9.