CONTAINS Abfrage nicht zu erkennen kleine Worte
-
26-09-2019 - |
Frage
Ich bin mit CONTAINSTABLE
zwei Tabellenspalten zu suchen. Sobald die Suche enthält kleine Worte wie ‚die‘ ‚für‘ ‚a‘ Die Suche gibt noch keine Ergebnisse, wenn sie in der Spalte tatsächlich vorhanden sind.
Schnell Beispiel. Spalte durchsucht enthält den Text. 'System muss aktualisiert werden'
Im Anschluss an SQL 0 zurück Zeilen
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "to" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "to" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
Wenn 'auf' weggelassen, es funktioniert:
SELECT * FROM Incident WHERE (TicketNumber IN (
SELECT TicketNumber FROM [Action] FT_TBL INNER JOIN
CONTAINSTABLE(Action, Text, '"system" AND "needs" AND "upgraded" AND NOT "Search Summary"') KEY_TBL ON FT_TBL.ID = KEY_TBL.[KEY]
UNION
SELECT TicketNumber FROM [Incident] FT_TBL INNER JOIN
CONTAINSTABLE(Incident, Subject, '"system" AND "needs" AND "upgraded"') AS KEY_TBL ON FT_TBL.TicketNumber = KEY_TBL.[KEY]))
Wie kann CONTAINSTABLE
mit diesen kleineren Worte verwendet werden, oder sollten sie ganz weggelassen werden? Wenn diese kleineren Wörter bei der Suche tatsächlich sinnvoll sind, wie können sie in die Suche einbezogen werden?
Lösung
Das sind keine „kleinen Worte“, das sind gemeinsame Wörter, die auf der Sperrliste sind. Sie werden ignoriert.
Siehe Stoppwörter und Stopplisten auf BOL.
Andere Tipps
Update:
SQL Server 2005 sollte MSSQL \ FTData \ noiseENG.txt haben.
Ich würde reccommend Antworten auf Frage „Füllwörter in Sql zu sehen Server 2005 Volltextsuche "