SQL Server CONTAINS无法按预期工作

时间:2019-10-11 11:19:02

标签: sql-server full-text-search contains

我有一个地址表,我想用自由文本功能CONTAINS搜索该地址表。

SELECT [ID]
      ,[ID_AddressType]
      ,[Name1]
      ,[Name2]
      ,[Street]
      ,[Number]
      ,[ZipCode]
      ,[City]
      ,[Country]
  FROM [TrailerLoadingAssistant].[dbo].[Address]
  WHERE CONTAINS((Name1, Name2, Street, Number, ZipCode, City, Country), '"Bier*" AND "742*"')

在我的表中有一个条目,街道名称以Bier开头,邮政编码为742。为什么脚本找不到该条目?如果我将OR替换为OR,则可以使用,但它还会找到其他条目,其中只有一个搜索词可以满足。

2 个答案:

答案 0 :(得分:1)

SELECT [ID]
      ,[ID_AddressType]
      ,[Name1]
      ,[Name2]        
      ,[Street]
      ,[Number]
      ,[ZipCode]
      ,[City]
      ,[Country]
  FROM [TrailerLoadingAssistant].[dbo].[Address]
  WHERE CONTAINS((Name1, Name2, Street, Number, ZipCode, City, Country), 'Bier*')
  AND CONTAINS((Name1, Name2, Street, Number, ZipCode, City, Country), '742*')

注意:-您可以通过将两个值分开来进行尝试。...而且我不知道包含'Bier*' or only 'Bier'的列表值

答案 1 :(得分:0)

我按照建议的here,通过向我的Address表中添加了计算列来解决了这个问题。包含所有相关字段。全文索引现在仅考虑此虚拟列。