# Xapian::MultiValueKeyMaker Class Reference

KeyMaker subclass which combines several values. More...

Inheritance diagram for Xapian::MultiValueKeyMaker:

[legend]

List of all members.

## Public Member Functions
virtual std::string | operator() (const Xapian::Document &doc) const
| This method takes a Document object and builds a key string from it.

## Detailed Description

KeyMaker subclass which combines several values.

When the result is used for sorting, results are ordered by the first value. In the event of a tie, the second is used. If this is the same for both, the third is used, and so on. If reverse is true for a value, then the sort order for that value is reversed.

When used for collapsing, the documents will only be considered equal if all the values specified match. If none of the specified values are set then the generated key will be empty, so such documents won't be collapsed (which is consistent with the behaviour in the "collapse on a value" case). If you'd prefer that documents with none of the keys set are collapsed together, then you can set reverse for at least one of the values. Other than this, it isn't useful to set reverse for collapsing.

## Member Function Documentation

virtual std::string Xapian::MultiValueKeyMaker::operator() | ( | const Xapian::Document & | doc | ) | const`[virtual]`

This method takes a Document object and builds a key string from it.

These keys are then used for ordering or collapsing matching documents.

Implements Xapian::KeyMaker.

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

- xapian/keymaker.h