[Zope-Checkins] CVS: Zope2 - PathIndex.py:1.1.2.2
Andreas Jung
andreas@dhcp165.digicool.com
Fri, 4 May 2001 13:10:45 -0400
Update of /cvs-repository/Zope2/lib/python/SearchIndex
In directory yetix:/work/sandboxes/ajung-pathindex/lib/python/SearchIndex
Modified Files:
Tag: ajung-pathindex
PathIndex.py
Log Message:
--- Updated File PathIndex.py in package Zope2 --
--- PathIndex.py 2001/05/04 16:00:47 1.1.2.1
+++ PathIndex.py 2001/05/04 17:09:29 1.1.2.2
@@ -83,12 +83,9 @@
#
##############################################################################
-from UnIndex import UnIndex
-from zLOG import LOG, ERROR
-from types import StringType
from BTrees.OOBTree import OOBTree
from BTrees.IOBTree import IOBTree
-import re,string
+import re
class PathIndex:
@@ -96,6 +93,9 @@
def __init__(self,id):
self.id = id
+ self.clear()
+
+ def clear(self):
self._index = OOBTree()
self._unindex = IOBTree()
@@ -140,15 +140,25 @@
def search(self,path,level=0):
- ids = []
+ dict = {}
comps = self.splitPath(path)
- for k in self._index.keys():
- s = k[level:len(comps)+1]
- if s==comps:
- ids.extend(self._index[k])
+ if level >=0:
+ for k in self._index.keys():
+ s = k[level:len(comps)+1]
+ if s==comps:
+ for item in self._index[k]:
+ dict[item]=1
+ else:
+ for k in self._index.keys():
+ for i in range(len(k)-len(comps)+1):
+ s = k[i:i+len(comps)]
+ if s==comps:
+ for item in self._index[k]:
+ dict[item]=1
+
+ return dict.keys()
- return ids
def keys(self):