RE: [Zope] portal_catalog or TextindexNG bug?
Thanks for your input Lupa. I agree with you. However, I'm facing a metadata element and not an index. So (to me) acquisition should not take place here. If what you said is also valid for metadata elements, it means that you can NEVER call an object the same name as a metadata element?? !!! (Hard to achieve in a big Plone site...) -- Jean -----Original Message----- From: +lupa+ [mailto:lupa@zurven.com] Sent: 15 July 2004 00:05 To: BALTUS Jean; zope@zope.org Subject: [Zope] portal_catalog or TextindexNG bug?
Jean wrote: I have the name 'country' in our metadata lists. On our website, I noticed we also have a ZSQL method named 'country' in a subfolder somewhere.
It seems that the portal_catalog tries to call this ZSQL method when retrieving items with a 'country' attribute. If I delete the ZSQL method and update the Catalog, everything goes back to normal.
Seems like a bug to me... If you name a ZSQL method with a name registered in your metadata list, the portal_catalog produces the traceback. I don't know whether it's a portal_catalog bug or a TextIndexNG bug.
This is not a bug per se, but rather a *feature* of acquisition. Spammish acquisition may be at times, when acquisition finds something we don't expect, but that's why names are important in Zope, and why acquisition is such a powerful ally in Zope programming. I have used this behavior successfully to create an index on a derived attribute, rather than on a simple named attribute. Simply create the index on the name of a script, and write a script that returns the value you want indexed. The catalog runs the script against each object it catalogs, rather than simply pulling the attribute with that name (pick a name for your script and index that is NOT an attribute name of your objects). This allows you to be creative in creating an index that contains exactly what you want, rather than be tied by name to an attribute. Uses? For example, the catalog will try to run the script against every object, but your script can return values only for the type of object that you want it to. For another, you can create a text index that consists of the combined text from several fields into one. +lüpa+ CalendarX.org CalendarX-0.2.7(alpha) at Sourceforge ########################################### This message has been scanned by ICT - Africa Museum
--On Donnerstag, 15. Juli 2004 9:25 Uhr +0200 BALTUS Jean <jean.baltus@africamuseum.be> wrote:
Thanks for your input Lupa. I agree with you. However, I'm facing a metadata element and not an index. So (to me) acquisition should not take place here.
If what you said is also valid for metadata elements, it means that you can NEVER call an object the same name as a metadata element?? !!! (Hard to achieve in a big Plone site...)
Looks like....That's one of the dark sides of implicit acquisition...love it or hat it :-) Andreas
participants (2)
-
Andreas Jung -
BALTUS Jean