Freigeben über


Fehlerhafte Änderungen der Volltextsuche

In diesem Thema werden fehlerhafte Änderungen im Verhalten der Volltextsuche beschrieben. Diese Änderungen können u. U. zur Funktionsunfähigkeit von Anwendungen, Skripts oder Funktionen führen, die auf früheren Versionen von SQL Server basieren. Diese Probleme können nach einem Upgrade auftreten. Weitere Informationen finden Sie unter Verwenden von Upgrade Advisor zur Vorbereitung auf Upgrades.

Wichtige Änderungen an der Volltextsuche in SQL Server 2012

Sortierung in sys.fulltext_languages für Namensspalte geändert

Die Sortierung der name-Spalte in der Katalogsicht sys.fulltext_languages (Transact-SQL) wurde von der festen Sortierung der Ressourcendatenbank zur für die Instanz von SQL Server ausgewählten Standardsortierung geändert. Diese Änderung ermöglicht den Vergleich der Werte in der name-Spalte, wenn Sie die sys.syslanguages (Transact-SQL)-Sicht mit sys.fulltext_languages verknüpfen. Sie können z. B. für alle Datenbanken abfragen, wo sich die Standardvolltextsprache von der Standarddatenbanksprache unterscheidet.

Aktuelle Änderungen an der Volltextsuche in SQL Server 2008

Die folgenden aktuellen Änderungen gelten zwischen SQL Server 2005 und SQL Server 2008 und höheren Versionen der Volltextsuche.

Funktion

Szenario

SQL Server 2005

Nur in SQL Server 2008 und höheren Versionen.

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 FREETEXTTABLE Transact-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.

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.

Rang vorausberechnen-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 2005 Transact-SQL, die angeben, dass die Volltextkataloge ordnungsgemäß funktionieren.

sys.fulltext_catalogs

Verwendung der Werte path, data_space_id und file_id dieser 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 path-Spalte dieser als veraltet markierten 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 PATH-Spalte dieser als veraltet markierten 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 der sp_help_fulltext_catalog_components dieser gespeicherten 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.

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.

Siehe auch

Konzepte

Verhaltensänderungen der Volltextsuche

Volltextsuche (SQL Server)