In Fulltext, tutti i caratteri non alfanumerici vengono rimossi dagli indici e sostituiti da spazi vuoti .Quindi nella tua ricerca, dato che avevi "." nella stringa stai cercando "sito web" e "rete".
Puoi risolvere questo problema in 2 modi.
Devi avere una tabella separata o un campo separato che contenga i dati fulltext, separati dalla tabella originale in cui mantieni i dati originali.
Nella tabella fulltext puoi rimuovere ". " e archivia "websitenet ".
In tal caso, è necessario rimuovere tutti i "." dalla stringa di ricerca prima di eseguire la query. Se vuoi interrogare con ".", devi sostituire "." con una stringa di caratteri, ad esempio "punto".
Quindi in questo caso memorizzeresti "websitedotnet ".
Quando cerchi questa volta, sostituisci tutti i "." con "punto" nella query.
OK ora il tuo caso con un nuovo campo in cui memorizzare la colonna da cercare per FTS quindi:
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
quindi la tua domanda:
declare @search_client nvarchar(100) = 'website'
set @search_client = replace(@search_client, '.', 'dot')
select * from dbo.temp where contains ((DESCFTS), @search_client)