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.