FULLTEXT Suche mit einer mehrsprachigen Spalte

9

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.

    
egrunin 07.10.2010, 13:47
quelle

4 Antworten

11

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.

    
Daniel Renshaw 07.10.2010, 13:54
quelle
4

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.

    
Seph 12.03.2014 09:44
quelle
2

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 .

    
Joe Stefanelli 07.10.2010 13:57
quelle
2

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.

    
N Burnett 09.01.2014 11:21
quelle