[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):