22 #ifndef XAPIAN_INCLUDED_STEM_H
23 #define XAPIAN_INCLUDED_STEM_H
25 #if !defined XAPIAN_IN_XAPIAN_H && !defined XAPIAN_LIB_BUILD
26 # error Never use <xapian/stem.h> directly; include <xapian.h> instead.
34 #include <string_view>
56 virtual std::string
operator()(
const std::string & word) = 0;
67 virtual bool use_proper_noun_heuristic()
const;
188 if (!
internal || word.empty())
return word;
189 return internal->operator()(word);
196 std::string get_description()
const;
Base class for objects managed by intrusive_ptr.
A smart pointer that uses intrusive reference counting.
Class representing a stemming algorithm implementation.
StemImplementation(const StemImplementation &)=delete
Don't allow copying.
StemImplementation()
Default constructor.
virtual std::string get_description() const =0
Return a string describing this object.
void operator=(const StemImplementation &)=delete
Don't allow assignment.
virtual std::string operator()(const std::string &word)=0
Stem the specified word.
Class representing a stemming algorithm.
Stem()
Construct a Xapian::Stem object which doesn't change terms.
static std::string get_available_languages()
Return a list of available languages.
Stem & operator=(Stem &&)=default
Move assignment operator.
Xapian::Internal::intrusive_ptr< StemImplementation > internal
Stem(const Stem &o)
Copy constructor.
bool is_none() const
Return true if this is a no-op stemmer.
Stem(Stem &&)=default
Move constructor.
Stem(StemImplementation *p)
Construct a Xapian::Stem object with a user-provided stemming algorithm.
Stem & operator=(const Stem &o)
Assignment.
std::string operator()(const std::string &word) const
Stem a word.
Mechanism for accessing a struct of constant information.
const struct constinfo * get_constinfo_() noexcept
The Xapian namespace contains public interfaces for the Xapian library.
unsigned stemmer_name_len
Define XAPIAN_VISIBILITY_* macros.
#define XAPIAN_VISIBILITY_DEFAULT