[Zope] Re: zcatalog, brains & keywordIndex
Tres Seaver
tseaver at palladion.com
Tue Feb 26 12:06:23 EST 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Stefano Guglia wrote:
> Hello everybody..
>
> I have to index some data from a mysql query recordset and all works OK
> but..I added a keywordIndex to store (with the same url) multiple values
> related to the above recordset.
> It seems I cannot use brains (query results are strings).
>
> Probably a newbie question, but I really do not know how to update a
> keywordIndex starting from a list..Any help (+sample code pls :-)) ?
If you have a KeywordIndex for the attribute 'foo', then you need to
arrange that the reult objects in your recordset have sequences for the
column / atrribute 'foo'. E.g., for a query like:
select bar.id as 'bar, bar.name as 'name', foo.name as 'foo
from bar, foo where foo.bar_id = bar.id
you need to transform the result set:
bars = {}
for row in rows:
bar_id= row['bar']
bar = bars.get(bar_id)
if bar is None:
bar = bars[bar_id[ = {'bar': bar_id,
'name': row['name'],
'foo': [],
}
bar['foo'].append(row['foo'])
*Now* you can index the records you have transformed:
for bar in bars.values():
catalog.indexObject(compute_uid(bar), make_record(bar))
Tres.
- --
===================================================================
Tres Seaver +1 540-429-0999 tseaver at palladion.com
Palladion Software "Excellence by Design" http://palladion.com
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD4DBQFHxEcP+gerLs4ltQ4RAil1AKCnONzwX4/GKMQKx5WP6twE30p4rwCY4Q9X
V2jWkrjSZcDbyXqk0JUgqA==
=1zLd
-----END PGP SIGNATURE-----
More information about the Zope
mailing list