Frage

Ich habe ein Problem mit einer FreeText -Suche, die derzeit auf einem SQL 2000 -Server ausgeführt wird.

In einer Tabelle von ungefähr 1,3 Millionen Zeilen, die Firmennamen enthalten, versuche ich, eine FreeText -Abfrage zu verwenden. Da SQL Server beim Erstellen seines Index jedoch Sonderzeichen und einzelne Zeichen streift, funktioniert unser Code beim Senden der Abfrage.

Zum Beispiel suchen Suchen wie "Texas A & M" nur nach "Texas", was eine Menge irrelevanter Datensätze zurückgibt.

Was ist der Best-Practice für den Umgang mit solchen Suchanfragen? Würde dieses Problem durch Upgrade auf eine neuere Version von SQL Server behoben?

Zu diesem Zeitpunkt ist ein Drittanbieter-Indexmotor wie Lucene keine Option, selbst wenn dies das Problem beheben würde, was ich mir nicht sicher bin.

War es hilfreich?

Lösung

Sie können versuchen, ein einzelnes Charakter -Wildcard '_' zu verwenden, ähnlich wie folgt:

WHERE myColumn like 'Texas_A_&_M'

oder

WHERE myColumn like 'Texas%A_&_M' 

Andere Tipps

Sie können prüfen, ob Verbesserungen in SQL Server 2005 Ihr Problem lösen können:SQL Server 2005 Volltext-Suche: Interna und Verbesserungen, insbesondere über Lärmwörter in Neue Funktionen für den Entwickler.

Wenn Sie Firmennamen und nicht lange Textpassagen durchsuchen, warum dann nicht so verwenden?

...
WHERE
    CompanyName LIKE '%Texas A%&%M%'
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top