Ich habe diese Datenbanktabelle, die den Volltextindex auf dem neuesten Stand halten soll. Ich sehe es jedoch überhaupt nicht (kein Fehler im Protokoll, da das letzte Protokoll, das ich sehe, war, als ich es manuell ausgelöst habe).
Hier ist was ich sehe ...
aber auf dem Tisch selbst ...
Könnte dies der Grund sein, warum dies nicht automatisch geschieht?
(..\MSSQL\Log\SQLFT*)
Antworten:
Sie suchen am falschen Ort.
Sie müssen wie folgt überprüfen:
Verwenden von T-SQL ..
Anschließend können Sie den Status der zuletzt ausgefüllten Datums- und Uhrzeitangabe überprüfen
Fügen Sie einige Daten ein ..
Jetzt sehen Sie, dass der FT-Katalog aktualisiert wurde.
In den logs (
..\MSSQL\Log\SQLFT*
) wird auch unten die Nachricht angezeigt ...Von BOL :
Beachten Sie auch die Leistung von Volltextindizes verbessern
quelle
Issue I am looking at is why it doesn't seem to update at all until I manually rebuild the index.
Hast du es so eingestellt, wie ich es gezeigt habe? Wenn es viele Änderungen gibt, wird es einige Zeit dauern, seitThe full-text index is updated in the background, however, so propagated changes might not be reflected immediately in the index.
Aus irgendeinem Grund hat der Volltextindexer das automatische Ausfüllen einer meiner SQL 2012-Datenbanken beendet, nachdem mein sekundäres Datenbankreplikat der Verfügbarkeitsgruppe übernommen wurde und das primäre Replikat wurde.
Nachdem der Volltextindex gelöscht und in der Tabelle mit aktiviertem automatischem Auffüllen neu erstellt wurde, wurde das automatische Auffüllen erneut gestartet. Ich habe SQL Management Studio und den Assistenten zum Erstellen von Volltextindizes verwendet, um den Index neu zu erstellen.
Ich war besorgt darüber, wie lange es dauern würde, eine vollständige Indizierung der Daten durchzuführen. Ich war angenehm überrascht, dass es nur etwa 5 Minuten dauerte, um 3 Textspalten aus einer Tabelle mit 547619 Datensätzen neu zu indizieren.
Die in der Frage genannten Einstellungen für die Nachverfolgung von Änderungen auf Tabellenebene blieben deaktiviert. Daher unterscheidet sich die Nachverfolgung von Änderungen im Volltextindex definitiv von der Einstellung zur Nachverfolgung von Tabellenänderungen. Sie müssen die Tabellenänderungsverfolgung NICHT aktiviert haben, damit die Volltextindizierung, die Änderungsverfolgung und die Volltextindizierung automatisch ausgefüllt werden, funktioniert.
Wenn Sie die folgende Abfrage aus der Datenbank ausführen, wird angezeigt, wann Ihr Volltextindexer das letzte Mal einen Crawl ausgeführt hat.
Wenn Autopopulate aktiviert ist, sollte sich das crawl_end_date ändern, nachdem Sie Daten in die Tabelle eingefügt haben.
Außerdem werden Sie feststellen, dass beim Ausführen einer Abfrage, die den Volltextindex verwendet, die neuesten Daten angezeigt werden:
Zusätzliche Referenzen:
Artikel, der verschiedene Methoden der Volltextsuche beschreibt: https://msdn.microsoft.com/en-us/library/ms142575%28v=sql.100%29.aspx
Informationen zum Abfragen einer indizierten Volltexttabelle: https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#queries
Artikel zur Architektur der Volltextsuche: https://technet.microsoft.com/en-us/library/ms142571(v=sql.110).aspx#architecture
quelle