Gibt es eine Möglichkeit, FULLTEXT in einer mehrsprachigen Tabelle zu verwenden, ohne jeder Sprache eine eigene Spalte zu geben?
Ich habe eine Spalte, die ich durchsuchen muss, aber die Sprache in dieser Spalte variiert:
%Vor% Language
kann eine der folgenden sein: en
, de
, it
, kr
, th
Momentan baue ich eine Konkordanz und benutze diese für die Suche. Aber das ist nur für Englisch, Deutsch und Italienisch, und selbst für diejenigen, die es nicht stemming unterstützt. Alles andere verwendet LIKE '%searchterm%'
, und ich versuche, das zu verbessern.
Ich verwende SQL Server 2005.
Anstelle einer separaten Spalte pro Sprache können Sie, wenn Sie wissen, welche Zeilen welche Sprache enthalten, eine indizierte Sicht erstellen, die so gefiltert wird, dass nur Zeilen einer Sprache pro Sprache und FTI für jede Sprache enthalten sind. Sie müssen jedoch jede Ansicht einzeln abfragen.
Ich weiß, das ist eine alte Frage, aber ich bin gerade auf sie gestoßen.
Ein Ansatz, den ich gesehen habe, ist die Verwendung einer XML-Spalte und die Angabe des Attributs xml:lang
. Wie in CREATE FULLTEXT INDEX (Transact-SQL) .
Bei Dokumenten, die in XML- oder BLOB-Spalten gespeichert sind, die Sprache Die Codierung im Dokument wird zur Indexierungszeit verwendet. Zum Beispiel: In XML-Spalten wird das xml: lang-Attribut in XML-Dokumenten verwendet Identifizieren Sie die Sprache. Zur Abfragezeit der zuvor angegebene Wert in language_term wird zur Standardsprache für Volltext Abfragen, sofern language_term nicht als Teil eines Volltexts angegeben ist Abfrage.
Der Hauptnachteil dieses Ansatzes besteht darin, dass der Datentyp in XML geändert wird, aber es schien zu unserer Zeit für unsere Bedürfnisse zu funktionieren.
Zitat aus der Microsoft-Referenz auf CREATE FULLTEXT INDEX :
Für Nicht-BLOB- und Nicht-XML-Spalten Textdaten in mehreren enthalten Sprachen oder für Fälle, in denen die Sprache des in der. gespeicherten Textes Spalte ist unbekannt, könnte es sein geeignet für Sie, den neutralen zu verwenden (0x0) Sprachressource. Jedoch, Zuerst solltest du das verstehen mögliche Folgen der Verwendung der neutrale (0x0) Sprachressource. Zum Informationen über das Mögliche Lösungen und Folgen der Verwendung die neutrale (0x0) Sprachressource, siehe Best Practices für die Auswahl eines Sprache beim Erstellen eines Volltexts Index .
Ich verwende Ansichten für mehr als 20 Sprachen. Funktioniert gut für die Abfrage (wenn ein wenig komplex, um die richtige Ansicht für die Verwendung in Sprocs auswählen). Einfügungen und Aktualisierungen in der zugrunde liegenden Tabelle werden jedoch durcheinander gebracht, da der Plan eine Überprüfung jeder ft-Ansicht zu enthalten scheint, auch wenn keine Änderungsverfolgung erfolgt.
Tags und Links sql-server sql-server-2005 full-text-search internationalization