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.
Thanks!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? -- WBR, Roman Rybalko
