Einzelnen Beitrag anzeigen

Morphie

Registriert seit: 27. Apr 2008
Ort: Rahden
630 Beiträge
 
#8

AW: FB Suche laut DIN5007-2 (ä=ae)

  Alt 5. Apr 2013, 11:00
Ich setze eine Firebird-Volltextsuche immer so um, dass ich eine weitere Tabelle mit folgenden Feldern anlege:
ID
QuellTabelle
QuellFeld
QuellID
Wort

den eigentlichen Daten-Tabellen füge ich dann Trigger hinzu, die mir bei jeder Änderung/Neuanlage die entsprechenden Wörter aus allen relevanten Feldern in die Index-Tabelle schreiben.
Alternativ kann man auch einen Index-Dienst auf dem Server laufen lassen, der die Indizierung in einem x-beliebigen Intervall übernimmt... (hat einen Performancevorteil bei großen Batch-Imports)

So habe ich quasi für beliebig viele Tabellen mit beliebig vielen Spalten nur eine einzige Index-Tabelle mit der ich dann gezielt nach einzelnen Wort/Tabelle/Feld-Kombinationen suchen kann.

Ich bin sogar mal so weit gegangen, dass ich über die SYS$-Tabellen alle Textfelder für eine Tabelle abgefragt und diese automatisch indiziert habe. So muss man den Trigger bei neuen Textfeldern auch nicht mehr pflegen, da er sowieso alle Textfelder (Varchar, Char, Blob Text,...) indiziert.

Das Modell klappt bis jetzt ganz gut

Wenn man den Trigger, der für die Indizierung zuständig ist, jetzt so manipuliert, dass er zusätzlich zu den normalen Wörtern auch alle umgewandelten Wörter indiziert, braucht man also keine redundanten Spalten anlegen und kann nach belieben nach Müller oder nach Mueller suchen
  Mit Zitat antworten Zitat