# 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.
| XAPIAN_DEPRECATED (void set_stemming_options(const std::string &lang, bool stem_all=false, const Stopper *stop=NULL))
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

## Detailed Description

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

## Member Enumeration Documentation

enum Xapian::QueryParser::feature_flag

Enum of feature flags.

Enumerator:

  FLAG_BOOLEAN | Support AND, OR, etc and bracketted subexpressions.
  FLAG_PHRASE | Support quoted phrases.
  FLAG_LOVEHATE | Support + and -.
  FLAG_BOOLEAN_ANY_CASE | Support AND, OR, etc even if they aren't in ALLCAPS.
  FLAG_WILDCARD | Support right truncation (e.g. Xap*).

## 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.

Parameters:

  | query_string | A free-text query as entered by a user
  | flags | Zero or more Query::feature_flag specifying what features the QueryParser should support. Combine multiple values with bitwise-or (|).

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_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.

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

Deprecated:
  Deprecated method for backward compatibility.

Use set_stemmer, set_stemming_strategy and/or set_stopper instead.

set_stemming_options("") -> set_stemming_strategy(Xapian::QueryParser::STEM_NONE)

set_stemming_options("none") -> set_stemming_strategy(Xapian::QueryParser::STEM_NONE)

set_stemming_options(LANG) -> set_stemmer(Xapian::Stem(LANG); set_stemming_strategy(Xapian::QueryParser::STEM_SOME)

set_stemming_options(LANG, false) -> set_stemmer(Xapian::Stem(LANG); set_stemming_strategy(Xapian::QueryParser::STEM_SOME)

set_stemming_options(LANG, true) -> set_stemmer(Xapian::Stem(LANG); set_stemming_strategy(Xapian::QueryParser::STEM_ALL)

If a third parameter is passed, set_stopper(PARAM3) and treat the first two parameters as above.

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

- include/xapian/queryparser.h