2010-11-18 13 views
0

Ich habe ein Feld in meiner Datenbank, die ein Word-Dokument enthält. Dies wird in einem varBinary (max) -Feld gespeichert.SQL-Volltextsuche Index Binärfeld

Ich benutze die Volltextsuche, um nach Text in diesem Feld zu suchen. Dazu habe ich ein Feld 'Extension' angelegt und jeder Datensatz enthält '.doc' im Feld Extension. Ich habe die Änderungsverfolgung auf automatisch gesetzt.

Alles funktioniert in Ordnung, bis ich einen neuen Datensatz erstellen. Wenn ich einen neuen Datensatz erstelle und nach einem Wort suche, das nur in den neuen Datensatz eingefügt wurde, findet das FTS nichts. Aber, wenn ich dies tun:

UPDATE table SET Extension = '.doc'

die FTS finden meinen neuen Rekord! Wie ist das möglich? Was vermisse ich?

Also, wenn ich ein Update für die Datensätze durchführen, werden die Datensätze neu indiziert?

+1

Haben Sie versucht, nur etwas Zeit zu geben? Wenn die Indexierung im Hintergrund erfolgt, ist sie möglicherweise nicht unmittelbar nach dem Hinzufügen des Datensatzes verfügbar. – Guffa

+0

Ja, ich habe das getan. Aber wenn ich einen vorhandenen Datensatz mit einem eindeutigen Wort aktualisiere und nach diesem Wort suche, erhalte ich direkt Ergebnisse – Martijn

+0

Könnten Sie ein EXPLAIN auf die Abfrage (n) schreiben, die die binäre Spalte nach einem gegebenen Text durchsuchen? – FlipMcF

Antwort

0

Es tut uns leid, aber vielleicht ist das Problem, dass Sie nicht Volltext Index eine binäre/Varbinary-Spalte, so dass Sie möglicherweise einige undefinierte Verhalten erhalten.

aus dem [5.1] Handbuch:

Volltextindizes können nur mit MyISAM-Tabellen verwendet werden und kann nur für CHAR, VARCHAR oder TEXT-Spalten erstellt werden.

http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.html

Obwohl ich nicht ‚versucht‘ habe es selbst Ihre genaue Situation zu bestätigen und wieder zu erstellen, in dem die Spalte

1

indiziert scheint hatte ich genau dieses Problem. Es scheint, dass der Katalog erstellt und der Volltext aktiviert wurde, nachdem die Tabelle bereits Daten enthielt. Daher wurde der Volltextkatalog nie für die Originaldaten aktualisiert. Das Folgende diente dazu, das Problem für meine vorhandenen Daten zu lösen, aber es gibt wahrscheinlich eine einfachere Methode:

Verwandte Themen