Ve Fulltextu jsou všechny nealfanumerické znaky z indexů odstraněny a nahrazeny mezerami .Takže při hledání, protože jste měli "." v řetězci hledáte "website" a "net".
Můžete to opravit dvěma způsoby.
Musíte mít samostatnou tabulku nebo samostatné pole, které obsahuje fulltextová data, oddělená od původní tabulky, pokud si ponecháte původní data.
Ve fulltextové tabulce můžete odstranit ". “ a uložit „websitenet ".
."V takovém případě musíte odstranit všechny "." z vyhledávacího řetězce, než provedete dotaz. Pokud se chcete dotazovat pomocí ".", musíte nahradit "." se znakovým řetězcem – například „tečka“.
V tomto případě byste tedy uložili „websitedotnet ".
."Když budete tentokrát hledat, nahradíte všechna „.“ s "tečkou" v dotazu.
OK, nyní váš případ s novým polem, kam uložte sloupec, který se má hledat podle FTS, takže:
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
pak váš dotaz:
declare @search_client nvarchar(100) = 'website'
set @search_client = replace(@search_client, '.', 'dot')
select * from dbo.temp where contains ((DESCFTS), @search_client)