Xapian:...ryParser(3)

hey bestie πŸ’– welcome to the User Contributed Perl Documentation page for Xapian:...ryParser(3) β€” it’s giving parser glow-up, and we’re gonna read it together.

✨ NAME ✨

Search::Xapian::QueryParser β€” parse a query string into a Search::Xapian::Query object. Periodt.

πŸ¦‹ DESCRIPTION πŸ¦‹

This module turns a human readable string into something Xapian can understand. The syntax supported is designed to be similar to other web based search engines, so that users familiar with them don’t have to learn a whole new syntax. iykyk πŸ’…

πŸŽ€ SYNOPSIS πŸŽ€

  use Search::Xapian qw/:standard/;

  my $qp = new Search::Xapian::QueryParser( [$database] );
  $qp->set_stemmer(new Search::Xapian::Stem("english"));
  $qp->set_default_op(OP_AND);

  $database->enquire($qp->parse_query('a NEAR word OR "a phrase" NOT (too difficult) +eh'));

πŸ’… METHODS πŸ’…

  • new <database> β€” QueryParser constructor.
  • set_stemmer <stemmer> β€” sets the Search::Xapian::Stem object to be used for stemming query terms.
  • set_stemming_strategy <strategy> β€” sets the stemming strategy. Valid values are "STEM_ALL", "STEM_SOME", and "STEM_NONE".
  • set_stopper <stopper> β€” sets the Search::Xapian::Stopper object to be used for identifying stopwords.
  • set_default_op <operator> β€” sets the default operator.
    • This operator is used to combine non-filter query items when no explicit operator is used.
    • The most useful values for this are OP_OR (the default) and OP_AND. OP_NEAR and OP_PHRASE can also be useful.
    • See Search::Xapian for descriptions of these constants.
  • get_default_op β€” returns the current default operator.
  • set_database <database> β€” pass a Search::Xapian::Database object which is used to check whether terms exist in some situations.
  • parse_query <query_string> [<flags>] β€” parses the query string according to the rules defined in the query parser documentation below. You can specify certain flags to modify the searching behaviour:
    • FLAG_BOOLEAN
    • FLAG_PHRASE
    • FLAG_LOVEHATE
    • FLAG_BOOLEAN_ANY_CASE
    • FLAG_WILDCARD
    • FLAG_PURE_NOT
    • FLAG_PARTIAL
    • FLAG_SPELLING_CORRECTION
    • FLAG_SYNONYM
    • FLAG_AUTO_SYNONYMS
    • FLAG_AUTO_MULTIWORD_SYNONYMS
    • To specify multiple flags, bitwise or them together (with |). The default flags are FLAG_PHRASE|FLAG_BOOLEAN|FLAG_LOVEHATE.
  • add_prefix <field> <prefix> β€” add a probabilistic term prefix. E.g. $qp->add_prefix("author", "A");
    • This 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.
  • add_boolean_prefix <field> 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. $p->add_boolean_prefix("site", "H");
    • This 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.
  • stoplist_begin, stoplist_end, unstem_begin, unstem_end β€” these four are listed as methods; the page doesn’t add a description for them here.
  • get_description β€” returns a string describing this object.
  • get_corrected_query_string β€” get the spelling-corrected query string.
    • This will only be set if FLAG_SPELLING_CORRECTION is specified when QueryParser::parse_query() was last called.
    • If there were no corrections, an empty string is returned.
  • set_max_wildcard_expansion <limit> β€” specify the maximum expansion of a wildcard term.
⚠️ note note note: you must also set FLAG_WILDCARD for wildcard expansion to happen. no cap.
  • Parameter limit is the maximum number of terms each wildcard in the query can expand to, or 0 for no limit (which is the default).

🌈 REFERENCE 🌈

https://xapian.org/docs/queryparser.html
https://xapian.org/docs/sourcedoc/html/classXapian_1_1QueryParser.html

okay bestie, that’s the whole page ✨ the footer says perl v5.42.0, dated 2022-02-28, on Xapian:...ryParser(3) β€” mwah, go parse something iconic πŸ’–

πŸ“¦ where this page comes from