Freigeben über


Aktuelle Änderungen der Volltextsuche in SQL Server 2008

In diesem Thema werden wichtige Änderungen im Verhalten der Volltextsuche beschrieben. Diese Änderungen können unter Umständen zur Funktionsunfähigkeit von Anwendungen, Skripts oder Funktionen führen, die auf früheren Versionen von SQL Server basieren. Diese Probleme können nach einer Aktualisierung auftreten. Weitere Informationen finden Sie unter Verwenden des Updateratgebers zur Vorbereitung auf Aktualisierungen.

Aktuelle Änderungen

Die folgenden aktuellen Änderungen gelten für die Volltextsuche in SQL Server 2008.

Feature

Szenario

SQL Server 2005

SQL Server 2008

CONTAINSTABLE mit benutzerdefinierten Typen (UDTs)

Der Volltextschlüssel ist ein SQL Server benutzerdefinierter Typ, z. B. MyType = char(1).

Der zurückgegebene Schlüssel entspricht dem Typ, der dem benutzerdefinierten Typ zugewiesen wurde.

Im Beispiel wäre dies char(1).

Der zurückgegebene Schlüssel entspricht dem benutzerdefinierten Typ. Im Beispiel wäre dies MyType.

top_n_by_rank -Parameter (für die CONTAINSTABLE-Anweisung und die FREETEXTTABLETransact-SQL-Anweisung)

top_n_by_rank-Abfragen mit 0 (null) als Parameter.

Erzeugt einen Fehler, da – wie in der Fehlermeldung angegeben – ein Wert größer als 0 (null) verwendet werden muss.

Wird erfolgreich ausgeführt und gibt 0 (null) Zeilen zurück.

CONTAINSTABLE und ItemCount

Löschen Sie Zeilen aus der Basistabelle, bevor Änderungen an MSSearch übermittelt werden.

CONTAINSTABLE gibt einen inaktiven Datensatz zurück. ItemCount wird nicht geändert.

CONTAINSTABLE gibt keine inaktiven Datensätze zurück.

FREETEXT oder FREETEXTTABLE

Suchen nach einem genauen Ausdruck

Wenn die Suchzeichenfolge (freetext_string) in doppelte Anführungszeichen gesetzt ist, werden keine Wortstammerkennungs- und Thesaurusübereinstimmungen ermittelt, und die Zeichenfolge gibt nur genaue Übereinstimmungen wie bei einer Suche nach einem Wort oder Ausdruck zurück. Zum Beispiel würde die Angabe "schnelles Versenden" in einem FREETEXT-Prädikat nur Zeilen zurückgeben, die den Text "schnelles Versenden" enthalten. Der Ausdruck "schnell Paket versenden" würde nicht zurückgegeben werden.

Für FREETEXT und FREETEXTTABLE sind keine Ausdruckssuchen mehr zulässig, da dabei auch Wortstammerkennungs- und Thesaurusübereinstimmungen unabhängig davon ermittelt werden, ob die Suchzeichenfolge in einfache oder doppelte Anführungszeichen gesetzt ist. Beim Suchen nach "schnelles Versenden" würde z. B. sowohl "schnelles Versenden" als auch "schnell Paket versenden" zurückgegeben werden.

Verwenden Sie CONTAINS oder CONTAINSTABLE, um nach einem Ausdruck zu suchen.

ItemCount

Tabelle enthält keine Dokumente oder Typspalten.

Neben indizierten Dokumenten erfasst der ItemCount-Wert Dokumente, die NULL sind oder den Typ NULL aufweisen.

Der ItemCount-Wert erfasst nur indizierte Dokumente.

Katalog-ItemCount

BLOB-Spalte mit einer NULL-Erweiterung.

Der Wert entspricht ItemCount von Katalog.

Der Wert entspricht nicht ItemCount von Katalog.

UniqueKeyCount

Abfragen einer eindeutigen Anzahl von Schlüsseln von einem Katalog, z. B. zwei Tabellen (table1 und table2) mit jeweils drei Wörtern (word1, word2 und word3).

UniqueKeyCount = 9. In der folgenden Tabelle wird die Entstehung dieses Werts zusammengefasst:

table1 = 3

EOF für Volltextindex von table1 = 1

table2 = 3

EOF für Volltextindex von table2 = 1

Volltextkatalog = 1

UniqueKeyCount entspricht im Hinblick auf die einzelnen Tabellen der Anzahl unterschiedlicher Schlüsselwörter + 1 (0xFF). Dieselben Wörter in > 1.DOC werden nicht als neuer eindeutiger Schlüssel behandelt.

UniqueKeyCount entspricht im Hinblick auf einen Katalog der Summe von UniqueKeyCount für alle Tabellen im Katalog. Identische Wörter aus verschiedenen Tabellen werden als eindeutige Schlüssel behandelt. In diesem Fall entspricht die Anzahl der eindeutigen Schlüssel 8.

precompute rank-Option auf Serverebene

Leistungsoptimierung von FREETEXTTABLE-Abfragen.

Wenn für diese Option 1 festgelegt ist, verwenden mit top_n_by_rank angegebene FREETEXTTABLE-Abfragen vorausberechnete Rangdaten, die in den Volltextkatalogen gespeichert sind.

Wird nicht unterstützt.

sp_fulltext_pendingchanges beim Aktualisieren der Schlüsselspalte

Aktualisieren Sie die Volltextschlüsselspalte in einer Zeile einer zweizeiligen Tabelle, und führen Sie sp_fulltext_pendingchanges aus.

Beide Zeilen werden angezeigt.

Nur eine Zeile wird angezeigt.

Inlinefunktionen

Inlinefunktionen mit einem Volltextoperator

Rückgabe einer Fehlermeldung.

Rückgabe der relevanten Zeilen.

sp_fulltext_database

Aktivieren oder deaktivieren Sie die Volltextsuche mit sp_fulltext_database.

Bei Volltextabfragen werden keine Ergebnisse zurückgegeben. Wenn Volltext für die Datenbank deaktiviert wurde, können keine Volltextvorgänge ausgeführt werden.

Gibt Ergebnisse für Volltextabfragen zurück, und Volltextvorgänge können auch dann ausgeführt werden, wenn Volltext für die Datenbank deaktiviert wurde.

Gebietsschemaspezifische Stoppwörter

Abfragen in gebietsschemaspezifischen Varianten einer übergeordneten Sprache, z. B. Französisch (Belgien) und Französisch (Kanada).

Abfragen in gebietsschemaspezifischen Varianten werden von den Komponenten (Wörtertrennung, Wortstammerkennung und Stoppwörter) der übergeordneten Sprache verarbeitet. Beispielsweise wird Französisch (Belgien) mit den Komponenten von Französisch (Frankreich) analysiert.

Stoppwörter müssen jedem Gebietsschemabezeichner (LCID) explizit hinzugefügt werden. Beispielsweise müssen Sie eine LCID für Belgien, Kanada und Frankreich angeben.

Thesaurus-Wortstammerkennung

Verwendung von Thesaurus und Flexionsformen (Wortstammerkennung).

Nach der Erweiterung wird für Thesauruswörter automatisch eine Wortstammerkennung durchgeführt.

Wenn Sie die flektierte Form in der Erweiterung verwenden möchten, müssen Sie diese explizit hinzufügen.

Volltext-Katalogpfad und -Dateigruppe

Verwendung von Volltextkatalogen.

Jeder Volltextkatalog weist einen physischen Pfad auf und gehört einer Dateigruppe an. Volltextkataloge werden als Datenbankdateien behandelt.

Ein Volltextkatalog ist ein virtuelles Objekt und gehört keiner Dateigruppe an. Ein Volltextkatalog ist ein logisches Konzept, das auf eine Gruppe von Volltextindizes verweist.

HinweisHinweis
DDL-Anweisungen für SQL Server 2005Transact-SQL, die angeben, dass die Volltextkataloge ordnungsgemäß funktionieren.

sys.fulltext_catalogs

Verwendung des Pfads, der data_space_id, der file_id der Katalogsicht.

Diese Spalten geben einen spezifischen Wert zurück.

Diese Spalten geben NULL zurück, da sich der Volltextkatalog nicht mehr im Dateisystem befindet.

sys.sysfulltextcatalogs

Verwendung der Pfadspalte für die veraltete Systemtabelle.

Gibt den Dateisystempfad des Volltextkatalogs zurück.

Gibt NULL zurück, da sich der Volltextkatalog nicht mehr im Dateisystem befindet.

sp_help_fulltext_catalogs

sp_help_fulltext_catalogs_cursor

Verwendung der Spalte PATH für die veralteten gespeicherten Prozeduren.

Gibt den Dateisystempfad des Volltextkatalogs zurück.

Gibt NULL zurück, da sich der Volltextkatalog nicht mehr im Dateisystem befindet.

sp_help_fulltext_catalog_components

Verwendung von sp_help_fulltext_catalog_components für diese gespeicherte Prozedur.

Gibt eine Liste aller Komponenten (Filter, Wörtertrennung und Protokollhandler) zurück, die für alle Volltextkataloge in der aktuellen Datenbank verwendet werden.

Gibt leere Zeilen zurück.

DATABASEPROPERTY und DATABASEPROPERTYEX

Verwendung der IsFullTextEnabled-Eigenschaft.

Die Einstellung IsFullTextEnabled gibt an, ob die Volltextsuche in der jeweiligen Datenbank aktiviert ist.

Der Wert dieser Spalte hat keine Auswirkungen. In Benutzerdatenbanken ist die Volltextsuche standardmäßig aktiviert.

Änderungsverlauf

Aktualisierter Inhalt

Der Tabelle wurde eine Zeile zum Feature FREETEXT hinzugefügt.