Re: indizieren von texten mit umlauten via TextIndexNG3?
Stefan Palme <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Organization | Invisible Brain |
| Message-ID | <[email protected]> |
On Mon, 2008-12-22 at 17:41 +0100, Andreas Jung wrote:
> On 22.12.2008 17:07 Uhr, Stefan Palme wrote:
> > On Mon, 2008-12-22 at 16:55 +0100, Andreas Jung wrote:
> >> On 22.12.2008 16:35 Uhr, Stefan Palme wrote:
> >>>>> Habe einen eigenen AT-basierten Content-Type, der u.a. ein solches
> >>>>> Feld enthält:
> >>>> Für die Verwendung von TXNG3 mit _eigenen_ Content-Typen:
> >>>> schreib einen Adapter, der IIndexableContent implementiert (siehe
> >>>> TextIndexNG3/README.txt)
> >>> :-(
> >>>
> >>> Das heißt, das nette Archetypes-Feature, welches Felder, die als
> >>> "searchable" markiert sind, automatisch als SearchbleText indiziert,
> >>> funktioniert in Zusammenarbeit mit TextIndexNG3 nicht mehr richtig?
> >> Dies funktioniert auch mit Plone 3 und TXNG3 out-of-the-box korrekt.
> >> ...gerade mit einer nackten Plone 3.1.7 Instanz und TXG 3.2.14
> >> getestet. Umlaute werden korrekt behandelt und keinesfalls als
> >> Worttrenner behandelt. Ein anderes Verhalten ist mir unbekannt.
> >> Zur nur nimm den Debugger und trace durch die index_object() Methode in
> >> index.py durch und finde raus, warum das bei dir nicht tut. Sorry keine
> >> Ahnung, ein solches Verhalten wäre mir aufgefallen. Du hast den Fehler,
> >> Du musst es leider weiterverfolgen.
> >
> > Der "Fehler" ist wohl, dass ich Plone-2.5.3 einsetze.
> > Laut Webseite läuft TextIndexNG-3.1.x aber mit Plone-2.5.x...
> >
>
> Das sollte es auch kein Problem sein.
Gefunden. In content.py (aus TextIndexNG3-3.1.16) wird in der Methode
extract_content der zu indizierende Content aus einem Objekt geholt.
Entweder via IIndexableContent oder - wenn dieses Interface nicht
implementiert ist - den guten alten Zope-2-way durch Aufruf der
entsprechenden Getter.
Ca. in Zeile 135 wird dieser Content mit folgendem Code nach Unicode
konvertiert:
if isinstance(v, str):
encoding = 'iso-8859-15' # ATT: fix this
v = unicode(v, encoding, 'ignore')
Das liefert in meinem Fall falsche Ergebnisse, weil mein Content
UTF-8-kodiert in den Objekten gespeichert ist.
...und da steht ja sogar ein "fix this" dran :-)
Habe diese Stelle nun für mich angepasst, und nun läuft es auch wie
erwartet...
Grüße
-stefan-
_______________________________________________
zope mailing list
[email protected]
https://mail.dzug.org/mailman/listinfo/zope