Im Volltext werden alle nicht alphanumerischen Zeichen in den Indizes entfernt und durch Leerzeichen ersetzt .So in Ihrer Suche, da Sie "." in der Zeichenfolge suchen Sie nach "website" und "net".
Sie können dies auf zwei Arten beheben.
Sie benötigen eine separate Tabelle oder ein separates Feld mit den Volltextdaten, getrennt von der Originaltabelle, in der Sie die Originaldaten aufbewahren.
In der Volltexttabelle können Sie das „. entfernen " und speichern Sie "websitenet ".
In diesem Fall müssen Sie alle "." aus der Suchzeichenfolge, bevor Sie die Abfrage durchführen. Wenn Sie mit „.“ abfragen möchten, müssen Sie „.“ ersetzen. mit einer Zeichenfolge - zum Beispiel "Punkt".
In diesem Fall würden Sie also „websitedotnet speichern ".
Wenn Sie dieses Mal suchen, ersetzen Sie alle "." mit "Punkt" in der Abfrage.
OK, jetzt Ihr Fall mit einem neuen Feld, in dem die Spalte gespeichert wird, die von FTS gesucht werden soll, also:
ID DESCRIPTION DESCFTS
-----------------------------------------------------
1 this is a website. this is a websitedot
2 a website exists. a website existsdot
3 go to mywebsite.net go to mywebsitedotnet
4 go to mywebsite.net. go to mywebsitedotnetdot
dann Ihre Abfrage:
declare @search_client nvarchar(100) = 'website'
set @search_client = replace(@search_client, '.', 'dot')
select * from dbo.temp where contains ((DESCFTS), @search_client)