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.
