W pełnym tekście wszystkie znaki niealfanumeryczne są usuwane z indeksów i zastępowane przez spacje .Więc w poszukiwaniach, odkąd miałeś "." w ciągu szukasz „witryny” i „sieci”.
Możesz to naprawić na 2 sposoby.
Musisz mieć oddzielną tabelę lub oddzielne pole, które zawiera dane pełnotekstowe, oddzielone od oryginalnej tabeli, w której przechowujesz oryginalne dane.
W tabeli pełnego tekstu możesz usunąć „. ” i sklep „websitenet ".
W takim przypadku musisz usunąć wszystkie „.” z ciągu wyszukiwania przed wykonaniem zapytania. Jeśli chcesz zapytać z „.”, musisz zastąpić „.” z ciągiem znaków -na przykład "kropka".
W takim przypadku należy przechowywać „websitedotnet ".
Podczas wyszukiwania tym razem zastępujesz wszystkie „.” z „kropką” w zapytaniu.
OK, teraz twoja sprawa z nowym polem, w którym przechowujesz kolumnę do przeszukania przez FTS, więc:
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
następnie Twoje zapytanie:
declare @search_client nvarchar(100) = 'website'
set @search_client = replace(@search_client, '.', 'dot')
select * from dbo.temp where contains ((DESCFTS), @search_client)