---
name: "Search::Xapian::Enquire"
section: "3pm"
platform: "linux"
package: "libsearch-xapian-perl"
version: "1.2.25.5-3+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Search::Xapian::Enquire"
---

# Search::Xapian::Enquire(3pm)

Make queries against a database

## NAME

Search::Xapian::Enquire - Make queries against a database

## DESCRIPTION

This class provides an interface to the information retrieval system for the purpose of searching.

## METHODS

- new

  - set\_query

  takes either a ready made Search::Xapian::Query or a scalar containing a query, which in that case will be passed to Search::Xapian::Query's constructor, together with any other passed arguments.

- set\_query\_object \<query\>

  - get\_query

  - matches \<start\> \<size\> \[\<check\_at\_least\>\]

  Takes the start element, and maximum number of elements (and optionally the minimum number of matches to check), and returns an array tied to Search::Xapian::MSet::Tied.

- get\_matching\_terms\_begin

  Returns a Search::Xapian::TermIterator, pointing to the start of the stream.

- get\_matching\_terms\_end

  Returns a Search::Xapian::TermIterator, pointing to the end of the stream.

- set\_collapse\_key \<collapse\_key\>

  - set\_docid\_order \<order\>

  Set the direction in which documents are ordered by document id in the returned MSet.

  This order only has an effect on documents which would otherwise have equal rank.  For a weighted probabilistic match with no sort value, this means documents with equal weight.  For a boolean match, with no sort value, this means all documents.  And if a sort value is used, this means documents with equal sort value (and also equal weight if ordering on relevance after the sort).

  order can be ENQ\_ASCENDING (the default, docids sort in ascending order), ENQ\_DESCENDING (docds sort in descending order), or ENQ\_DONT\_CARE (docids sort in whatever order is most efficient for the backend.)

  Note: If you add documents in strict date order, then a boolean search - i.e. set\_weighting\_scheme(Search::Xapian::BoolWeight-\>**new()**) - with set\_docid\_order(ENQ\_DESCENDING) is a very efficient way to perform "sort by date, newest first".

- set\_cutoff \<percent\_cutoff\> \[\<weight\_cutoff\>\]

  - set\_sort\_by\_relevance

  Set the sorting to be by relevance only.  This is the default.

- set\_sort\_by\_value \<sort\_key\> \[\<ascending\>\]

  Set the sorting to be by value only.

  sort\_key - value number to reorder on.  Sorting is with a string compare.  If ascending is true (the default) higher is better; if ascending is false, lower is better.

  ascending - If true, document values which sort higher by string compare are better.  If false, the sort order is reversed.  (default true)

- set\_sort\_by\_value\_then\_relevance \<sort\_key\> \[\<ascending\>\]

  Set the sorting to be by value, then by relevance for documents with the same value.

  sort\_key - value number to reorder on.  Sorting is with a string compare.  If ascending is true (the default) higher is better; if ascending is false, lower is better.

  ascending - If true, document values which sort higher by string compare are better.  If false, the sort order is reversed.  (default true)

- set\_sort\_by\_relevance\_then\_value \<sort\_key\> \[\<ascending\>\]

  Set the sorting to be by relevance then value.

  Note that with the default BM25 weighting scheme parameters, non-identical documents will rarely have the same weight, so this setting will give very similar results to **set\_sort\_by\_relevance()**.  It becomes more useful with particular BM25 parameter settings (e.g. BM25Weight(1,0,1,0,0)) or custom weighting schemes.

  sort\_key - value number to reorder on.  Sorting is with a string compare.  If ascending is true (the default) higher is better; if ascending is false, lower is better.

  ascending - If true, document values which sort higher by string compare are better.  If false, the sort order is reversed.  (default true)

- set\_sort\_by\_key \<sorter\> \[\<ascending\>\]

  Set the sorting to be by key only.

  sorter - the functor to use to build the key.

  ascending - If true, keys which sort higher by string compare are better.  If false, the sort order is reversed.  (default true)

- set\_sort\_by\_key\_then\_relevance \<sorter\> \[\<ascending\>\]

  Set the sorting to be by key, then by relevance for documents with the same key.

  sorter - the functor to use to build the key.

  ascending - If true, keys which sort higher by string compare are better.  If false, the sort order is reversed.  (default true)

- set\_sort\_by\_relevance\_then\_key \<sorter\> \[\<ascending\>\]

  Set the sorting to be by relevance then key.

  sorter - the functor to use to build the key.

  ascending - If true, keys which sort higher by string compare are better.  If false, the sort order is reversed.  (default true)

- get\_mset

  Get match set.

- get\_eset \<maxitems\> \<rset\> \[\<decider\>\]

  Get set of query expansion terms.

- get\_description

  Return a description of this object.

- add\_matchspy \<spy\>

  Add a matchspy.

  This matchspy will be called with some of the documents which match the query, during the match process.

- clear\_matchspies

  Remove all the matchspies.

## SEE ALSO

Search::Xapian::Query, Search::Xapian::Database, Search::Xapian::MatchSpy
