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')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.
if 'keywordFirstLetter' not in pcat.indexes():
pcat.manage_addIndex('keywordFirstLetter','FieldIndex',extra={'indexed_attrs':'getKeywordFirstLetter'})
Damit der Index gleich aufgebaut wird, reindizieren wir ihn nach dem anlegen gleich neu.
pcat.manage_reindexIndex(['keywordFirstLetter'])