>>> from Products.ExtendedPathIndex.ExtendedPathIndex import ExtendedPathIndex
>>>
>>> class _O(object):
... def __init__(self, pi): self.pi = pi
...
>>> pi = ExtendedPathIndex("pi")
>>>
>>> paths = {}
>>> for leaf in ("1/1 1/12/121 1/12/122 2/21/1".split()):
... comps = leaf.split("/")
... pd = paths
... for c in comps:
... if c not in pd: pd[c] = {}
... pd = pd[c]
...
>>> def gen(prefix, pd):
... for c in sorted(pd):
... np = prefix + "/" + c
... yield np
... yield from gen(np, pd[c])
...
>>>
>>> for i, p in enumerate(gen("", paths)):
... print (i, p)
... indexed = pi.index_object(i, _O(p))
...
0 /1
1 /1/1
2 /1/12
3 /1/12/121
4 /1/12/122
5 /2
6 /2/21
7 /2/21/1
This means that /1/1 is the only path with 1 at level 1. As a consequence, search("/1/1", default_level=0, ...) and search("1", default_level=1, ...) must give the same results but:
Consider the following setup:
This means that
/1/1
is the only path with1
at level 1. As a consequence,search("/1/1", default_level=0, ...)
andsearch("1", default_level=1, ...)
must give the same results but:The results for
default_level=1
are obviously wrong.