2009-04-08 5 views
0

Ich dachte, Volltextsuche würde lassen Sie mich die Suche nach exakten Phrasen in einer optimierten Weise als ein LIKE Prädikat, aber ich lese, dass es das nicht tut genau.Der beste Weg zur literalen Phrase suchen Sie eine Textspalte in SQL Server

Ist "LIKE" der effizienteste Weg, um Tausende von TEXT-Zeilen in einer Tabelle nach einer literalen Zeichenfolge zu durchsuchen?

Es wurde ist eine exakte Übereinstimmung sein ...

Antwort

0

Mit welcher Version von SQL Server arbeiten Sie? Ich würde empfehlen, TEXT mit VARCHAR (MAX) zu ersetzen, wenn Sie es jemals können (SQL Server 2005 und höher).

Was lässt Sie sagen, dass der Volltext nicht funktioniert? Wie haben Sie Volltext eingerichtet und wie sehen Ihre Volltextabfragen aus?

Marc

+0

Ich habe Volltext eingerichtet, indem ich SQL Server Management Studio verwendet und einen Volltextkatalog mit einem Volltextindex für ein Feld in einer meiner Tabellen erstellt habe. Meine Anfrage: SELECT TOP 10 SERIAL_NO, writer_id, Schreiben, assignment_type, SUBDATE, Titel FROM write_onsite WHERE CONTAINS (Schreiben ' "take it once") – Caveatrob

+0

- die Abfrage gibt Dinge, die am Anfang nehmen, jede Anzahl der Wörter dazwischen, dann das Wort "einmal". Ich will nur die wörtliche Phrase "nimm es einmal" – Caveatrob

+0

Immer noch nicht klar: welche VERSION von SQL Server? –

1

LIKE (string%) schneller arbeiten, wenn Sie auf die Spalte richtigen Index haben und Sie suchen nach „string“ nur am Anfang des Wertes. Sie müssen LIKE (% string%) verwenden, wenn die "Zeichenfolge" in der Mitte Ihres Wertes liegt. Der Tabellen-Scan wird in diesem Fall ausgelöst und ist langsam (meistens langsamer als die Volltextsuche). Sie können die CONTAINS() - Funktion der Volltextsuche für die exakte Übereinstimmung verwenden.