2016-05-06 16 views
0

Wir haben einen Volltextindex für ein xml-Feld in unserer Datenbank.Volltextsuche liefert keine korrekten Ergebnisse

Wenn ich diese Abfrage ausführen:

select * 
    from UserProfile 
    where CONTAINS(UserData,'028894507') 

ich die richtigen Ergebnisse. Aber wenn ich diese Abfrage ausführen:

select * 
    from UserProfile 
    where CONTAINS(UserData,'02889') 

ich einen ganz anderen Satz von Ergebnissen und nicht dazu gehört auch die Ergebnisse aus der ersten Abfrage.

ich eine schnelle Google-Suche gemacht und gefunden, dass es Stoppwörter, die Ergebnisse abwerfen kann, aber es gibt nicht einmal eine Stoppliste in meiner Datenbank ...

Antwort

0

Ich bin kein Experte TSQL, jedoch - Ich glaube CONTAINS sucht nach Übereinstimmungen mit ganzen Wörtern. Sie können auch mit dem Zeichen * nach Präfix-Übereinstimmungen suchen.

select * from UserProfile where CONTAINS(UserData,'"02889*"')

Dies sollte Zeilen entsprechen 028894507 enthalten, sowie jede Zeile mit einer Zahl mit 02889 beginnen. Beachten Sie, dass die doppelten Anführungszeichen wichtig sind, wenn Sie eine Präfix-Übereinstimmung machen.

https://msdn.microsoft.com/en-us/library/ms187787.aspx

Verwandte Themen