[Zope-Checkins] SVN: Zope/trunk/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py Reverse searching order; start with the presumably smaller specific set and work our way up to larger and larger docid sets. This makes intersecting faster for most common index distributions.

Martijn Pieters mj at zopatista.com
Sun Dec 14 05:42:57 EST 2008


Log message for revision 94047:
  Reverse searching order; start with the presumably smaller specific set and work our way up to larger and larger docid sets. This makes intersecting faster for most common index distributions.

Changed:
  U   Zope/trunk/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py

-=-
Modified: Zope/trunk/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py
===================================================================
--- Zope/trunk/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py	2008-12-13 23:01:27 UTC (rev 94046)
+++ Zope/trunk/lib/python/Products/PluginIndexes/PathIndex/PathIndex.py	2008-12-14 10:42:56 UTC (rev 94047)
@@ -178,7 +178,7 @@
             return IISet(self._unindex.keys())
 
         results = None
-        for i, comp in enumerate(comps):
+        for i, comp in reversed(list(enumerate(comps))):
             if not self._index.get(comp, {}).has_key(level+i): return IISet()
             results = intersection(results, self._index[comp][level+i])
         return results



More information about the Zope-Checkins mailing list