4 Stimmen

Text in einer Oracle-Datenbank nach Zeichen wie "a" suchen, um die folgenden Zeichen zu finden: "a", "à", "â" und "ä

Ich habe eine Oracle-Datenbank mit Daten in französischer Sprache.

Meine Benutzer erwähnten, dass sie Daten unabhängig von der Betonung von Zeichen finden möchten, also Wörter wie:

  • École gefunden werden, indem man eingibt Ecole o École
  • Père-Noël gefunden werden, indem man eingibt Pere-Noel o Père-Noël o Père-Noël

Da es sich um eine Suche handelt, die in vielen Spalten und Tabellen mit vielen Zeilen durchgeführt wird, und da es viele Zeichen gibt, die im Französischen Akzente haben können, möchte ich eine effiziente Möglichkeit haben, akzentuierte Zeichen mit nicht akzentuierten Versionen abzugleichen.

Bietet Oracle hierfür eine Möglichkeit und wenn nicht, welche Lösungen gibt es dafür?

3voto

Frank Schmitt Punkte 28856

Sehen Sie sich die Dokumentation für Oracle-Volltextindizes (Oracle Text) an - im Grunde genommen müssen Sie dafür einen eigenen Lexer erstellen.

Um einen einfachen Volltextindex zu erstellen:

create index fulltext_idx on tab(col) indextype is ctxsys.context; 

UPDATE: Die Verwendung des auto_lexer könnte auch eine Option sein (da er Französisch unterstützt), siehe http://download.oracle.com/docs/cd/B28359_01/text.111/b28304/cdatadic.htm#BHCGJHDH

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X