Re: indizieren von texten mit umlauten via TextIndexNG3?
Andreas Jung <[email protected]>
| Newsgroups | gmane.comp.web.zope.german |
|---|---|
| Organization | ZOPYX Ltd & Co. KG |
| Message-ID | <[email protected]> |
On 23.12.2008 8:50 Uhr, Stefan Palme wrote: > 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 :-) Was auch gefixt wurde in (TXNG 3.2.X) - dort wird das default Encoding aus config.py verwendet. Dies ist jedoch nur der allerletzte Notnagel, falls weder kein Adapter gefunden wurde bzw. der Inhalt nicht als Unicode vorliegt. TXNG versucht *nicht* ein Encoding zu erraten. Zumindest in TXNG3.2 müsste die Adaptermimik eigentlich auch für normale AT Typen funktionieren, die sich via SearchableText indizieren lassen. Für TXNG 3.1...zu alt und zu lange her :-) Die sauberste Lösung dürfte über einen eigenen Adapter führen. Sollte aber kein allzu großer Aufwand sein. Schau dir adapters/plone_adapters.py an oder: Du patschst die TXNG 3.1 Sourcen und änderst das Encoding händisch. Andreas _______________________________________________ zope mailing list [email protected] https://mail.dzug.org/mailman/listinfo/zope
lists.vcf
(text/x-vcard, 316 B)
begin:vcard fn:Andreas Jung n:Jung;Andreas org:ZOPYX Ltd. & Co. KG adr;quoted-printable:;;Charlottenstr. 37/1;T=C3=BCbingen;;72070;Germany email;internet:[email protected] title:CEO tel;work:+49-7071-793376 tel;fax:+49-7071-7936840 tel;home:+49-7071-793257 x-mozilla-html:FALSE url:www.zopyx.com version:2.1 end:vcard