On Thu, Nov 09, 2006 at 03:34:38PM +0100, Sylvain Amrani wrote:
Hi list,
I've got an attribute that could contains very long strings (more than
150 chr).
It's a string made of small tokens separated by spaces and slashes :
departmentUID: BA/BAC ANDL/BAPZ IDF/GRPT YVLN/CIE GN ST GERM...
The attibute is indexed with pres,eq,sub
When I search for small substrings like (departmentUID=*/GRPT*) it's
fast and ok.
When I search for a long subset of the string, the query is _very_ long
(many seconds) :
(departmentUID=BA/BAC ANDL/BAPZ IDF/GRPT YVLN/CIE GN ST*)
The substring index is not generated for long strings. Check these in
slapd.conf(5):
index_substr_if_minlen <integer>
index_substr_if_maxlen <integer>
index_substr_any_len <integer>
index_substr_any_step <integer>
In the end, you may be better off spliting that big string in
multivalued attributes perhaps or somethine else.
Using subinitial or subany in the index slap.conf parameter did not
solve the problem.
I found only one post in the archives related to a server were any query
string with more than 3 characters makes slow answers. He was told to
adjust :
index_substr_if_minlen
index_substr_if_maxlen
index_substr_any_len
index_substr_any_step
But theses parameters are only available with openldap 2.3 and it
doesn't seem to be exactly my problem (I've no differences between 2,3,4
or 5 characters query strings)
Defaults may have changed. In earlier versions, this was a compile time
definition.