KeyMaker subclass which combines several values. More...
Public Member Functions | |
template<class Iterator > | |
MultiValueKeyMaker (Iterator begin, Iterator end) | |
virtual std::string | operator() (const Xapian::Document &doc) const |
Build a key string for a Document. More... | |
void | add_value (Xapian::valueno slot, bool reverse=false, const std::string &defvalue=std::string()) |
Add a value slot to the list to build a key from. More... | |
Public Member Functions inherited from Xapian::KeyMaker | |
KeyMaker () | |
Default constructor. | |
virtual | ~KeyMaker () |
Virtual destructor, because we have virtual methods. More... | |
KeyMaker * | release () |
const KeyMaker * | release () const |
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.
|
inline |
Add a value slot to the list to build a key from.
slot | The value slot to add |
reverse | Adjust values from this slot to reverse their sort order (default: false) |
defvalue | Value to use for documents which don't have a value set in this slot (default: empty). This can be used to make such documents sort after all others by passing get_value_upper_bound(slot) + "x"
|
|
virtual |
Build a key string for a Document.
These keys can be used for sorting or collapsing matching documents.
doc | Document object to build a key for. |
Implements Xapian::KeyMaker.