# Xapian::QueryParser Class Reference

Build a Xapian::Query object from a user query string. More...

`#include <queryparser.h>`

Collaboration diagram for Xapian::QueryParser:

[legend]
List of all members.

## Public Types

enum | feature_flag { FLAG_BOOLEAN = 1, FLAG_PHRASE = 2, FLAG_LOVEHATE = 4, FLAG_BOOLEAN_ANY_CASE = 8, FLAG_WILDCARD = 16 }
| Enum of feature flags. More...
enum | stem_strategy { STEM_NONE, STEM_SOME, STEM_ALL }

## Public Member Functions

| QueryParser (const QueryParser &o)
| Copy constructor.
QueryParser & | operator= (const QueryParser &o)
| Assignment.
| QueryParser ()
| Default constructor.
| ~QueryParser ()
| Destructor.
void | set_stemmer (const Xapian::Stem &stemmer)
| Set the stemmer.
void | set_stemming_strategy (stem_strategy strategy)
| Set the stemming strategy.
void | set_stopper (const Stopper *stop=NULL)
| Set the stopper.
void | set_stemming_options (const std::string &lang, bool stem_all=false, const Stopper *stop=NULL)
| Deprecated method for backward compatibility.
void | set_default_op (Query::op default_op)
| Set the default boolean operator.
Query::op | get_default_op () const
| Get the default boolean operator.
void | set_database (const Database &db)
| Specify the database being searched.
Query | parse_query (const std::string &query_string, unsigned flags=FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE)
| Parse a query.
void | add_prefix (const std::string &field, const std::string &prefix)
| Add a probabilistic term prefix.
void | add_boolean_prefix (const std::string &field, const std::string &prefix)
| Add a boolean term prefix allowing the user to restrict a search with a boolean filter specified in the free text query.
TermIterator | stoplist_begin () const
| Iterate over terms omitted from the query as stopwords.
TermIterator | stoplist_end () const
TermIterator | unstem_begin (const std::string &term) const
| Iterate over unstemmed forms of the given (stemmed) term used in the query.
TermIterator | unstem_end (const std::string &) const
std::string | get_description () const
| Return a string describing this object.

## Public Attributes

Xapian::Internal::RefCntPtr< Internal > | internal
| Reference counted internals.

## Detailed Description

Build a Xapian::Query object from a user query string.

## Member Enumeration Documentation

enum Xapian::QueryParser::feature_flag

Enum of feature flags.

Enumeration values:

  FLAG_BOOLEAN | Support AND, OR, etc and bracketted subexpressions.
  FLAG_PHRASE | Support quoted phrases.

## Constructor & Destructor Documentation

Xapian::QueryParser::QueryParser | ( | const QueryParser & | o | ) |

| Copy constructor.

Xapian::QueryParser::QueryParser | ( |  | ) |

| Default constructor.

Xapian::QueryParser::~QueryParser | ( |  | ) |

| Destructor.

## Member Function Documentation

void Xapian::QueryParser::add_boolean_prefix | ( | const std::string & | field,
|  | const std::string & | prefix
| ) |

Add a boolean term prefix allowing the user to restrict a search with a boolean filter specified in the free text query.

E.g. qp.add_boolean_prefix("site", "H");

Allows the user to restrict a search with site:xapian.org which will be converted to Hxapian.org combined with any probabilistic query with OP_FILTER.

Multiple fields can be mapped to the same prefix (so you can e.g. make site: and domain: aliases for each other).

Parameters:

  | field | The user visible field name
  | prefix | The term prefix to map this to

void Xapian::QueryParser::add_prefix | ( | const std::string & | field,
|  | const std::string & | prefix
| ) |

Add a probabilistic term prefix.

E.g. qp.add_prefix("author", "A");

Allows the user to search for author:orwell which will search for the term "Aorwel" (assuming English stemming is in use). Multiple fields can be mapped to the same prefix (so you can e.g. make title: and subject: aliases for each other).

Parameters:

  | field | The user visible field name
  | prefix | The term prefix to map this to

Query::op Xapian::QueryParser::get_default_op | ( |  | ) | const

| Get the default boolean operator.

std::string Xapian::QueryParser::get_description | ( |  | ) | const

| Return a string describing this object.

QueryParser& Xapian::QueryParser::operator= | ( | const QueryParser & | o | ) |

| Assignment.

Query Xapian::QueryParser::parse_query | ( | const std::string & | query_string,
|  | unsigned | flags = `FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE`
| ) |

| Parse a query.

void Xapian::QueryParser::set_database | ( | const Database & | db | ) |

| Specify the database being searched.

void Xapian::QueryParser::set_default_op | ( | Query::op | default_op | ) |

| Set the default boolean operator.

void Xapian::QueryParser::set_stemmer | ( | const Xapian::Stem & | stemmer | ) |

| Set the stemmer.

void Xapian::QueryParser::set_stemming_options | ( | const std::string & | lang,
|  | bool | stem_all = `false`,
|  | const Stopper * | stop = `NULL`
| ) | `[inline]`

| Deprecated method for backward compatibility.

void Xapian::QueryParser::set_stemming_strategy | ( | stem_strategy | strategy | ) |

| Set the stemming strategy.

void Xapian::QueryParser::set_stopper | ( | const Stopper * | stop = `NULL` | ) |

| Set the stopper.

TermIterator Xapian::QueryParser::stoplist_begin | ( |  | ) | const

| Iterate over terms omitted from the query as stopwords.

TermIterator Xapian::QueryParser::unstem_begin | ( | const std::string & | term | ) | const

| Iterate over unstemmed forms of the given (stemmed) term used in the query.

## Member Data Documentation

Xapian::Internal::RefCntPtr<Internal> Xapian::QueryParser::internal

| Reference counted internals.

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

- include/xapian/queryparser.h