[Zope-dev] ZCatalog Lazy Results

Tres Seaver tseaver@digicool.com
Wed, 21 Feb 2001 22:46:16 -0500


Casey Duncan <casey_duncan@yahoo.com> wrote:

> --- Johan Carlsson <johanc@torped.se> wrote:
> > Hi,
> > I need to check an assumption I have made on the
> > ZCatalog Brains and Lazy Results from reading the
> > source.
> > 
> > 1. The Brains gets its schema from the ZCatalog and
> > this
> >     schema is basicly fixed. E.g. a search result
> > always has
> >     the attributes defined by the Meta Data in the
> > ZCatalog?
> 
> Yes, you always get all the meta-data. However, does
> anyone know how the "used" argument of
> ZCatalog.searchResults works, or why you would use it?

'used' tells you the names of the indexes which actually
participated in the search (as distinct from those you
asked for).

> > I would rather be able to construct a Brain Schema
> > at search time
> > equivalent to the way theSELECT statement sets up
> > the result attributes
> > in SQL. 
> > Example: 
> >     resultset =
> >
> Catalog.searchResults(query,schema=('id','title','keywords'))
> 
> Why is this important? I would suggest not putting big
> stuff in the meta-data that might warrant this. Just
> use the nifty new (v2.3) getObject method of the brain
> to access whatever properties/methods of the actual
> object you might need.

'getObject' forces you to "wake up" the catalogued object;
in a large enough result set, the price is pretty punitive,
compared to serving the results as cached metadata.

Tres.
-- 
===============================================================
Tres Seaver                                tseaver@digicool.com
Digital Creations     "Zope Dealers"       http://www.zope.org