我们正在使用全文搜索来检查邮政编码和地址,我们发现NNx
,其中 x 是一个数字,被认为是一个干扰词。我们知道这个问题,但想不出一个干净的解决方案,除了检查搜索词是否包含NN
然后使用LIKE
。
我们正在使用此代码。
SELECT DISTINCT
*
FROM CONTAINSTABLE(dbo.AddressData, Data, N'NN1', 1000) C
INNER JOIN dbo.AddressData AD ON AD.Id = C.[KEY]
INNER JOIN dbo.Address A ON A.Id = AD.AddressId
有没有人对如何逃避或阻止全文将 NN 视为干扰词有任何想法?
更新:我们添加了一个 if 来检查输入字符串中的 NN,如果 NN 存在,我们只使用 Like 代替,但这对性能有很大影响。从不到一秒到超过 5 秒:/ 有人有更好的解决方案吗?