[Zope-dev] Re: [Zope-CMF] Fieldindex searches very slow when anonymous.

Tres Seaver tseaver@zope.com
Tue, 09 Apr 2002 07:21:21 -0400


Arnar Lundesgaard wrote:
> THANK YOU!!!!!!!!!!!!
> 
> This worked extremely well, and the site is
> almost faster than the squid cache now. :-)
> 
> http://www.forskning.no is a major ZOPE site
> (for us), that will be released tomorrow noon
> local time. This is the first site that uses
> our soon to be opensourced TopicMap engine that
> builds on CMF. The engine lets CMF handle all 
> Topic Map data items, giving us access to CMF
> functionality like versioning and workflow.
> It should be opensourced when we have time to
> clean it up a bit and document it.

Excellent -- I'm glad that helped.  Note that for Zope 2.6, we have
added some new index types to deal more directly with such problems:

   - DateIndex:  a FieldIndex which knows it is for DateTimes,
     and indexes a much more efficient (both space and time!)
     representation;

   - DateRangeIndex:  indexes a pair of DateTimes, allowing the specific
     query you had trouble with to go *much* faster;

   - TopicIndex:  indexes values which pass user-defined filters, effectively
     "precomputing" a frequently-used catalog query.

Tres.

>>-----Original Message-----
>>From: Tres Seaver [mailto:tseaver@zope.com]
>>Sent: 9. april 2002 05:43
>>To: Arnar Lundesgaard
>>Cc: zope-dev@zope.org
>>Subject: Re: [Zope-CMF] Fieldindex searches very slow when anonymous.
>>
>>What is killing your query is the test for "effective range" 
>>of content.  If
>>your site does not use the concept (i.e., all your content 
>>has 'None' for
>>both its effective and expires dates), you can apply the 
>>following patch to
>>remove the check::
>>
>>-------------- patch starts here ---------------------------------
>>--- CMFCore/CatalogTool.py	4 Jan 2002 19:50:04 -0000	1.22
>>+++ CMFCore/CatalogTool.py	9 Apr 2002 03:42:14 -0000
>>@@ -186,7 +186,7 @@
>>          user = _getAuthenticatedUser(self)
>>          kw[ 'allowedRolesAndUsers' ] = 
>>self._listAllowedRolesAndUsers( user )
>>
>>-        if not _checkPermission(
>>+        if 0 and not _checkPermission(
>>              CMFCorePermissions.AccessInactivePortalContent, self ):
>>              base = aq_base( self )
>>              now = DateTime()
>>-------------- patch ends here -----------------------------------

Tres.
-- 
===============================================================
Tres Seaver                                tseaver@zope.com
Zope Corporation      "Zope Dealers"       http://www.zope.com