SQL Server CONTAINS не работает должным образом - PullRequest
0 голосов
/ 11 октября 2019

У меня есть таблица адресов, и я хочу выполнить поиск по ней с помощью функции произвольного текста 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. Почему сценарий не находит запись? Если я заменяю И на ИЛИ, он работает, но также находит другие записи, где выполняется только одно из условий поиска.

Ответы [ 2 ]

1 голос
/ 11 октября 2019
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'

0 голосов
/ 11 октября 2019

Я решил проблему, добавив вычисляемый столбец в мою таблицу Address, как предложено здесь . Это содержит все соответствующие поля. Полнотекстовый индекс теперь учитывает только этот виртуальный столбец.

...