ZCatalog Index Pfade

Django, Flask, Bottle, WSGI, CGI…
woolfy
User
Beiträge: 19
Registriert: Montag 6. Februar 2006, 15:14
Wohnort: Stuttgart

ZCatalog Index Pfade

Beitragvon woolfy » Dienstag 25. April 2006, 12:38

Hallo zusammen,

ich habe einen Objekttyp, der unter anderem HTML mit verschiedenen links enthalten kann.
Daraus filtere ich nun alle Verweise (img src, a href) und erhalte so eine Liste von relativen Pfaden.

Code: Alles auswählen

['/Abc/Def/x.gif', '/foo_bar/123.doc', ..]


Nun sollen diese Verweise im ZCatalog indexiert werden.
Leider finde ich keinen passenden Index.
Wichtig ist dabei, dass die Pfade auf jeden Fall 1:1 erhalten bleiben.
=> CaseSensitive, Punkt, Unterstrich, ...

Jeder Pfad muss eindeutig einzeln abfragbar sein.

Kennt jemand einen passenden Index?
Oder eine andere Lösung, wie ich eine Liste von Pfaden so effektiv wie möglich catalogiesiert bekomme?

Vielen Dank im vorraus! :)

Gruß
Jens
woolfy
User
Beiträge: 19
Registriert: Montag 6. Februar 2006, 15:14
Wohnort: Stuttgart

Beitragvon woolfy » Donnerstag 27. April 2006, 16:32

Hab das Problem nun dadurch gelöst, dass ich den Standard-CatalogIndex "TextIndex" kopiert und dabei im Wesentlichen nur die Indexierung (index_object()) angepasst habe.
Hab die Kopie von TextIndex jetzt einfach mal TextIndex2 genannt.

Code: Alles auswählen

def index_object(self, documentId, obj, threshold=None):
    # source ist bei mir immer als callable attribute verfügbar
    # und gibt eine Liste in der Form zurück
    # ['/foo', '/foo/Bar.gif', '/ab_c', '/ab_c/1234']
    ...
    try:
        source = getattr(obj, self.id)
        if callable(source):
            source = source()
    ...
    import base64
    source = ' '.join([base64.encodestring(word) for word in source])
    ...
    for word in list(splitter(source,encoding=encoding)):
        ...



Beim Abfragen des Catalog's muss nun der zu ermittelnde Pfad ebenfalls base64-codiert werden.

Code: Alles auswählen

import base64
path = '/foo/Bar.gif'
cat = self.Catalog
cat({'my_TextIndex2': base64.encodestring(path)})
...


LG
Jens

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder