xapian-core  2.0.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Xapian::Internal::QueryWildcard Class Reference

#include <queryinternal.h>

+ Inheritance diagram for Xapian::Internal::QueryWildcard:
+ Collaboration diagram for Xapian::Internal::QueryWildcard:

Public Member Functions

 QueryWildcard (std::string_view pattern_, Xapian::termcount max_expansion_, int flags_, Query::op combiner_)
 
bool test_prefix_known (const std::string &candidate) const
 Perform wildcard test on candidate known to match prefix. More...
 
bool test (const std::string &candidate) const
 Perform full wildcard test on candidate. More...
 
Xapian::Query::op get_type () const noexcept
 
std::string get_pattern () const
 
Xapian::termcount get_max_expansion () const
 
int get_just_flags () const
 
int get_max_type () const
 
PostListAndEstimate postlist (QueryOptimiser *qopt, double factor, TermFreqs *termfreqs) const
 
termcount get_length () const noexcept
 
void serialise (std::string &result) const
 
QueryWildcardchange_combiner (Xapian::Query::op new_op)
 Change the combining operator. More...
 
std::string get_fixed_prefix () const
 Return the fixed prefix from the wildcard pattern. More...
 
std::string get_description () const
 
- Public Member Functions inherited from Xapian::Query::Internal
 Internal () noexcept
 
virtual ~Internal ()
 
virtual bool postlist_sub_and_like (Xapian::Internal::AndContext &ctx, Xapian::Internal::QueryOptimiser *qopt, double factor, Xapian::Internal::TermFreqs *termfreqs) const
 
virtual void postlist_sub_bool_or_like (Xapian::Internal::OrContext &ctx, Xapian::Internal::QueryOptimiser *qopt, Xapian::Internal::TermFreqs *termfreqs) const
 
virtual void postlist_sub_or_like (Xapian::Internal::OrContext &ctx, Xapian::Internal::QueryOptimiser *qopt, double factor, Xapian::Internal::TermFreqs *termfreqs, bool keep_zero_weight=true) const
 
virtual void postlist_sub_xor (Xapian::Internal::XorContext &ctx, Xapian::Internal::QueryOptimiser *qopt, double factor, Xapian::Internal::TermFreqs *termfreqs) const
 
virtual size_t get_num_subqueries () const noexcept
 
virtual const Query get_subquery (size_t n) const
 
virtual termcount get_wqf () const
 
virtual termpos get_pos () const
 
virtual void gather_terms (void *void_terms) const
 
- Public Member Functions inherited from Xapian::Internal::intrusive_base
 intrusive_base ()
 Construct with no references. More...
 

Private Member Functions

bool test_wildcard_ (const std::string &candidate, size_t o, size_t p, size_t i) const
 

Private Attributes

std::string pattern
 
Xapian::termcount max_expansion
 
int flags
 
Query::op combiner
 
size_t head = 0
 Fixed head and tail lengths, and min/max length term that can match. More...
 
size_t tail = 0
 
size_t min_len = 0
 
size_t max_len = 0
 
size_t min_check_len = size_t(-1)
 
std::string prefix
 
std::string suffix
 

Additional Inherited Members

- Static Public Member Functions inherited from Xapian::Query::Internal
static Query::Internalunserialise (const char **p, const char *end, const Registry &reg)
 
- Public Attributes inherited from Xapian::Internal::intrusive_base
unsigned _refs
 Reference count. More...
 

Detailed Description

Definition at line 500 of file queryinternal.h.

Constructor & Destructor Documentation

◆ QueryWildcard()

Xapian::Internal::QueryWildcard::QueryWildcard ( std::string_view  pattern_,
Xapian::termcount  max_expansion_,
int  flags_,
Query::op  combiner_ 
)

Member Function Documentation

◆ change_combiner()

QueryWildcard* Xapian::Internal::QueryWildcard::change_combiner ( Xapian::Query::op  new_op)
inline

Change the combining operator.

If there's only one reference to this object we change in-place and return a pointer to the existing object; otherwise we create and return a new QueryWildcard object.

Definition at line 574 of file queryinternal.h.

References Xapian::Internal::intrusive_base::_refs.

Referenced by Xapian::Internal::QuerySynonym::done().

◆ get_description()

string Xapian::Internal::QueryWildcard::get_description ( ) const
virtual

◆ get_fixed_prefix()

std::string Xapian::Internal::QueryWildcard::get_fixed_prefix ( ) const
inline

Return the fixed prefix from the wildcard pattern.

Definition at line 586 of file queryinternal.h.

◆ get_just_flags()

int Xapian::Internal::QueryWildcard::get_just_flags ( ) const
inline

Definition at line 552 of file queryinternal.h.

◆ get_length()

termcount Xapian::Internal::QueryWildcard::get_length ( ) const
virtualnoexcept

Reimplemented from Xapian::Query::Internal.

Definition at line 2040 of file queryinternal.cc.

◆ get_max_expansion()

Xapian::termcount Xapian::Internal::QueryWildcard::get_max_expansion ( ) const
inline

Definition at line 550 of file queryinternal.h.

◆ get_max_type()

int Xapian::Internal::QueryWildcard::get_max_type ( ) const
inline

Definition at line 556 of file queryinternal.h.

References Xapian::Query::WILDCARD_LIMIT_MASK_.

◆ get_pattern()

std::string Xapian::Internal::QueryWildcard::get_pattern ( ) const
inline

Definition at line 548 of file queryinternal.h.

◆ get_type()

Query::op Xapian::Internal::QueryWildcard::get_type ( ) const
virtualnoexcept

Implements Xapian::Query::Internal.

Definition at line 2060 of file queryinternal.cc.

References Xapian::Query::OP_WILDCARD.

◆ postlist()

PostListAndEstimate Xapian::Internal::QueryWildcard::postlist ( QueryOptimiser qopt,
double  factor,
TermFreqs termfreqs 
) const
virtual

◆ serialise()

void Xapian::Internal::QueryWildcard::serialise ( std::string &  result) const
virtual

Implements Xapian::Query::Internal.

Definition at line 2050 of file queryinternal.cc.

References combiner, flags, max_expansion, pack_string(), pack_uint(), and pattern.

◆ test()

bool Xapian::Internal::QueryWildcard::test ( const std::string &  candidate) const
inline

Perform full wildcard test on candidate.

Definition at line 542 of file queryinternal.h.

References startswith().

◆ test_prefix_known()

bool Xapian::Internal::QueryWildcard::test_prefix_known ( const std::string &  candidate) const

Perform wildcard test on candidate known to match prefix.

Definition at line 1972 of file queryinternal.cc.

References endswith(), head, max_len, min_check_len, min_len, prefix, suffix, and test_wildcard_().

◆ test_wildcard_()

bool Xapian::Internal::QueryWildcard::test_wildcard_ ( const std::string &  candidate,
size_t  o,
size_t  p,
size_t  i 
) const
private

Member Data Documentation

◆ combiner

Query::op Xapian::Internal::QueryWildcard::combiner
private

Definition at line 507 of file queryinternal.h.

Referenced by get_description(), postlist(), and serialise().

◆ flags

int Xapian::Internal::QueryWildcard::flags
private

Definition at line 505 of file queryinternal.h.

Referenced by QueryWildcard(), serialise(), and test_wildcard_().

◆ head

size_t Xapian::Internal::QueryWildcard::head = 0
private

Fixed head and tail lengths, and min/max length term that can match.

All in bytes.

Definition at line 513 of file queryinternal.h.

Referenced by QueryWildcard(), and test_prefix_known().

◆ max_expansion

Xapian::termcount Xapian::Internal::QueryWildcard::max_expansion
private

Definition at line 503 of file queryinternal.h.

Referenced by serialise().

◆ max_len

size_t Xapian::Internal::QueryWildcard::max_len = 0
private

Definition at line 513 of file queryinternal.h.

Referenced by QueryWildcard(), and test_prefix_known().

◆ min_check_len

size_t Xapian::Internal::QueryWildcard::min_check_len = size_t(-1)
private

Definition at line 525 of file queryinternal.h.

Referenced by QueryWildcard(), and test_prefix_known().

◆ min_len

size_t Xapian::Internal::QueryWildcard::min_len = 0
private

Definition at line 513 of file queryinternal.h.

Referenced by QueryWildcard(), and test_prefix_known().

◆ pattern

std::string Xapian::Internal::QueryWildcard::pattern
private

Definition at line 501 of file queryinternal.h.

Referenced by get_description(), QueryWildcard(), serialise(), and test_wildcard_().

◆ prefix

std::string Xapian::Internal::QueryWildcard::prefix
private

Definition at line 527 of file queryinternal.h.

Referenced by QueryWildcard(), and test_prefix_known().

◆ suffix

std::string Xapian::Internal::QueryWildcard::suffix
private

Definition at line 527 of file queryinternal.h.

Referenced by QueryWildcard(), and test_prefix_known().

◆ tail

size_t Xapian::Internal::QueryWildcard::tail = 0
private

Definition at line 513 of file queryinternal.h.

Referenced by QueryWildcard(), and test_wildcard_().


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