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