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