slapo−valsort — Value Sorting overlay to slapd
ETCDIR/slapd.conf
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.
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 {<weight
>} 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 lber-encode(3) format, the required value must conform to "{b}" syntax.
These slapd.conf
options apply to the Value Sorting overlay. They should
appear after the overlay
directive.
valsort−attr <attribute
>
<baseDN
>
(<sort-method
>
| weighted [<sort-method
>]
)Configure a sorting method for the specified
attribute
in
the subtree rooted at baseDN
. The sort-method
may be one
of alpha−ascend
,
alpha−descend
,
numeric−ascend
,
or numeric−descend
.
If the special weighted
method is
specified, a secondary sort-method
may also be
specified. It is an error to specify an alphanumeric
sort-method
for an attribute with Integer or NumericString syntax,
and it is an error to specify a numeric sort-method
for an
attribute with a syntax other than Integer or
NumericString.
database bdb suffix dc=example,dc=com ... overlay valsort valsort−attr member ou=groups,dc=example,dc=com alpha−ascend
To invoke ldapsearch(1) with the valsort control, the control value must be set appropriately. The following octets represent the desired "{b}" encoding:
0x30 0x03 0x01 0x01 0xff
The control can be sent from the command-line using the base64 encoding of the value:
ldapsearch -E 1.3.6.1.4.1.4203.666.5.14=::MAMBAf8=