在查看了this SO问题并进行自己的研究后,看来在使用全文搜索时你不能拥有一张前导通配符。
所以在最简单的例子中,如果我有一个包含1列的表,如下所示:
硬币
造币
undercoin
select COLUMN1 from TABLE1 where COLUMN1 LIKE '%coin%'
会得到我想要的结果。
如何在列上启用FULL TEXT SEARCH时获得完全相同的结果?
以下两个查询返回完全相同的数据,这不是我想要的。
SELECT COLUMN1 FROM TABLE1 WHERE CONTAINS(COLUMN1, '"coin*"')
SELECT COLUMN1 FROM TABLE1 WHERE CONTAINS(COLUMN1, '"*coin*"')
答案 0 :(得分:9)
全文搜索适用于查找单词的词或词干。因此,它没有在“undercoin”中的任何地方找到“硬币”这个词。您寻求的是使用全文搜索的能力搜索后缀,并且它本身不会这样做。有一些hacky解决方法,比如创建反向索引和搜索“nioc”。