.lf 1 stdin
.TH SLAPO-VALSORT 5 "2023/07/31" "OpenLDAP 2.6.6"
.\" Copyright 2005-2022 The OpenLDAP Foundation All Rights Reserved.
.\" Copying restrictions apply.  See COPYRIGHT/LICENSE.
.\" $OpenLDAP$
.SH NAME
slapo\-valsort \- Value Sorting overlay to slapd
.SH SYNOPSIS
/usr/pkg/share/examples/openldap/slapd.conf
.SH DESCRIPTION
The Value Sorting overlay can be used with a backend database to sort the
values of specific multi-valued attributes within a subtree. The sorting
occurs whenever the attributes are returned in a search response.
.LP
Sorting can be specified in ascending or descending order, using either
numeric or alphanumeric sort methods. Additionally, a "weighted" sort can
be specified, which uses a numeric weight prepended to the attribute values.
The weighted sort is always performed in ascending order, but may be combined
with the other methods for values that all have equal weights. The weight
is specified by prepending an integer weight {<\fIweight\fP>}
in front of each value of the attribute for which weighted sorting is
desired. This weighting factor is stripped off and not returned in search
results unless the valsort control is specified (1.3.6.1.4.1.4203.666.5.14).

The valsort control requires a value consisting of a Sequence that contains
a boolean flag. The weighting factor is only returned if the boolean value is TRUE. In
.BR lber-encode (3)
format, the required value must conform to "{b}" syntax.

.SH CONFIGURATION
These
.I slapd.conf
options apply to the Value Sorting overlay.
They should appear after the
.B overlay
directive.
.TP
valsort\-attr <\fIattribute\fP> <\fIbaseDN\fP> (<\fIsort-method\fP> | weighted [<\fIsort-method\fP>])
Configure a sorting method for the specified
.I attribute
in the subtree rooted at
.IR baseDN .
The 
.I sort-method
may be one of
.BR alpha\-ascend ,
.BR alpha\-descend ,
.BR numeric\-ascend ,
or
.BR numeric\-descend .
If the special
.B weighted
method is specified, a secondary
.I sort-method
may also be specified. It is an
error to specify an alphanumeric
.I sort-method
for an attribute with Integer
or NumericString syntax, and it is an error to specify a numeric
.I sort-method
for an attribute with a syntax other than Integer or NumericString.
.SH EXAMPLES
.LP
.nf
	database mdb
	suffix dc=example,dc=com
	...
	overlay valsort
	valsort\-attr member ou=groups,dc=example,dc=com alpha\-ascend
.fi

To invoke
.BR ldapsearch (1)
with the valsort control, the control value must be set appropriately.
The following octets represent the desired "{b}" encoding:
.LP
.nf
	0x30 0x03 0x01 0x01 0xff
.fi

The control can be sent from the command-line using the base64
encoding of the value:
.LP
.nf
	ldapsearch \-E 1.3.6.1.4.1.4203.666.5.14=::MAMBAf8=
.fi

.SH FILES
.TP
\fI/usr/pkg/share/examples/openldap/slapd.conf\fP
default \fBslapd\fP configuration file
.SH SEE ALSO
.BR slapd.conf (5),
.BR slapd\-config (5).
.SH ACKNOWLEDGEMENTS
.P
This module was written in 2005 by Howard Chu of Symas Corporation. The
work was sponsored by Stanford University.
