[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: How indexes used with search

25.09.2012 14:37, Howard Chu ÐÐÑÐÑ:
> Roman Rybalko wrote:
>> Suppose there is a search like (&(attr1=value1)(attr2=value2)), attr1
>> and
>> attr2 are indexed.
>> As far as I understand, this search fetches objectIDs from the index
>> on attr1,
>> than the objectIDs from the index on attr2, than, according to
>> operation "and"
>> ("&"), objectIDs that present in BOTH sets are determined (using some
>> set-intersection algorithm).
>> When the search is "or" (|(...)(...)), the objectIDs from both sets
>> are joined
>> and duplicates are removed (using some set-union algorithm).
>> If there is no index on attribute, the resulting objectID set is
>> determined by
>> bare iterate-and-compare on all the objects, or so.
> That's correct.

Also it's not clear for me how objectID set is determined when there is
search on "one" scope?
The same when "sub" scope cover not the full database contents but a
part of the object tree (suffix: cn=test, search base: cn=test1,cn=test)?

I thought that search with base covering not the full backend suffix
(but a partial tree) should work faster, but seems this is not true,
even overhead introduced by additional objectID set. Right?

Roman Rybalko