22 #ifndef XAPIAN_INCLUDED_QUERYPARSER_INTERNAL_H
23 #define XAPIAN_INCLUDED_QUERYPARSER_INTERNAL_H
63 std::string_view grouping_ = {})
86 grouping(grouping_ ? *grouping_ : std::string()),
101 std::multimap<std::string, std::string, std::less<>>
unstem;
105 std::map<std::string, FieldInfo, std::less<>>
field_map;
127 void add_prefix(std::string_view field, std::string_view prefix);
132 std::string_view prefix,
140 bool try_word_break,
unsigned flags,
141 bool& needs_word_break,
bool& was_acronym,
142 size_t& first_wildcard,
144 unsigned& edit_distance);
151 std::string_view default_prefix);
Parser State shared between the lexer and the parser.
An indexed database of documents.
Base class for field processors.
Base class for objects managed by intrusive_ptr.
Xapian::termcount max_fuzzy_expansion
Xapian::Internal::opt_intrusive_ptr< const Stopper > stopper
unsigned min_partial_prefix_len
std::list< std::string > stoplist
Xapian::termcount max_wildcard_expansion
std::multimap< std::string, std::string, std::less<> > unstem
std::string corrected_query
void add_boolean_prefix(std::string_view field, std::string_view prefix, const std::string *grouping)
Query parse_query(std::string_view query_string, unsigned int flags, std::string_view default_prefix)
unsigned min_wildcard_prefix_len
std::string parse_term(Utf8Iterator &it, const Utf8Iterator &end, bool try_word_break, unsigned flags, bool &needs_word_break, bool &was_acronym, size_t &first_wildcard, size_t &char_count, unsigned &edit_distance)
stem_strategy stem_action
std::list< RangeProc > rangeprocs
Xapian::termcount max_partial_expansion
std::map< std::string, FieldInfo, std::less<> > field_map
void add_prefix(std::string_view field, std::string_view prefix)
Build a Xapian::Query object from a user query string.
stop_strategy
Stopper strategies, for use with set_stopper_strategy().
stem_strategy
Stemming strategies, for use with set_stemming_strategy().
Class representing a query.
@ OP_OR
Match documents which at least one subquery matches.
@ WILDCARD_LIMIT_ERROR
Throw an error if OP_WILDCARD exceeds its expansion limit.
@ WILDCARD_LIMIT_MOST_FREQUENT
Limit OP_WILDCARD expansion to the most frequent terms.
Base class for range processors.
Class representing a stemming algorithm.
An iterator which returns Unicode character values from a UTF-8 encoded string.
An indexed database of documents.
The Xapian namespace contains public interfaces for the Xapian library.
unsigned XAPIAN_TERMCOUNT_BASE_TYPE termcount
A counts of terms.
parsing a user query string to build a Xapian::Query object
Information about how to handle a field prefix in the query string.
FieldInfo(filter_type type_, std::string_view grouping_)
FieldInfo(filter_type type_)
std::vector< std::string > prefixes
Field prefix strings.
FieldInfo(filter_type type_, Xapian::FieldProcessor *proc_, std::string_view grouping_={})
FieldInfo & append(std::string_view prefix)
filter_type type
The type of this field.
Xapian::Internal::opt_intrusive_ptr< Xapian::FieldProcessor > proc
Field processor. Currently only one is supported.
Xapian::Internal::opt_intrusive_ptr< RangeProcessor > proc
RangeProc(RangeProcessor *range_proc, const std::string *grouping_)