Einzelnen Beitrag anzeigen

jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#33

AW: Volltextsuche in Blob möglichst schnell

  Alt 27. Jun 2011, 07:53
Hier ist eine schöne Aufstellung, wann man mit FB BLOB oder Varchar benutzen kann/soll, allerdings auf Englisch.
http://www.volny.cz/iprenosil/interbase/ip_ib_strings.htm

Zur max. Länge bei Varchar, es kommt neben der FB-Version vermutlich auf den Charset an und evtl. auch auf 32/64bit System. Gerade bei BLOB und der Anforderung maximaler Größe macht es ja auch Sinn, die "Breite" des Systems auszunutzen. Beim Multibyte Charset wäre die Frage, ob es 2 Byte, 3 oder 4 sein müssen. (UTF8, Unicode usw.)
Aber ein Rezept für 1000 jährige Eier in Kantonesisch hat sicher seinen optischen Reiz.

Noch eine Varchar Variante (eignet sich für "einfache DB" und kombiniert BLOB Vorteil GROSS mit Varchar Vorteil INDEX usw)
Der Text wird in "mundgerechte" Stücke zerteilt. Eine separate Tabelle nimmt dann je Text die ID des Rezeptes sowie die Datensätze auf, die aus einer passenden Stückelung resultieren.
Die Spaltendefinition ist z.B. Varchar(100). Mit einer SP wird der Text angenommen und dann in ca 100 Zeichen Teilen eingefügt, immer abgetrennt nach dem letzten Wort, das noch rein passt. Als Variante könnte man auch eine Trennung nach Absätzen oder so machen (also CR/LF, Satzende, Halbsatz (Komma)..). Dann muss die Varcharspalte natürlich doch möglichst groß sein.
Je nach Verfahren bekommst Du dann bei der Abfrage automatisch noch die Satz oder Absatz Nummer ausgegeben, wenn Du einen entsprechenden Zusatzschlüssel für die Zeilen verwendest. Den kann man evtl. zur Visualisierung verwenden.
Gruß, Jo

Geändert von jobo (27. Jun 2011 um 07:55 Uhr) Grund: Korrektur
  Mit Zitat antworten Zitat