Personal tools
You are here: Home Dokumentationen Zope/Plone Hilfe FAQs Wie füge ich mit python einen Index im portal_catalog an?
Document Actions

Wie füge ich mit python einen Index im portal_catalog an?

Up to Table of Contents

Hin und wieder möchte man einen neuen Index zum portal_catalog hinzu fügen. Um z.B. alle Anfangsbuchstaben eines Dokumententyps für eine Suche zu benutzen.

Index per Python anlegen

Einen Index kann man wie folgt anlegen.
pcat = getToolByName(self, 'portal_catalog')
if 'keywordFirstLetter' not in pcat.indexes():
pcat.manage_addIndex('keywordFirstLetter','FieldIndex',extra={'indexed_attrs':'getKeywordFirstLetter'})
Hier wird ein neuen Index mit dem Namen keywordFirstLetter vom Typ FieldIndex angelegt. Diesem Index wird gleichzeitig die Methode getKeywordFirstLetter zugewiesen. Diese Methode ist in unserem Dokumententyp definiert und gibt basierend auf den Titel des Objektes, den kleingeschriebenen Anfangsbuchstaben zurück.


Damit der Index gleich aufgebaut wird, reindizieren wir ihn nach dem anlegen gleich neu.
pcat.manage_reindexIndex(['keywordFirstLetter'])