Полнотекстовое использование Sql Server содержит обратное

#sql #sql-server #full-text-search

#sql #sql-server #полнотекстовый поиск

Вопрос:

Обычное использование ‘Contains ‘

 USE AdventureWorks2012;  
GO  
DECLARE @SearchWord nvarchar(30)  
SET @SearchWord = N'performance'  
SELECT Description   
FROM Production.ProductDescription   
WHERE CONTAINS(Description, @SearchWord); 
  

Можем ли мы запустить что-то подобное для поиска столбца внутри «ключа поиска»

 SELECT Description   
FROM Production.ProductDescription   
WHERE CONTAINS(@SearchWord, Description); 
  

Комментарии:

1. Я думаю, что это невозможно использовать CONTAINS , потому что contains принимает имя столбца в качестве первого параметра. Попробуйте использовать LIKE

Ответ №1:

 USE AdventureWorks2012;  
GO  
DECLARE @SearchWord nvarchar(30)  
SET @SearchWord = N'performance'  
SELECT Description   
FROM Production.ProductDescription   
WHERE CHARINDEX(@SearchWord,Description)>0; 
  

Использование критериев поиска текста charindex выполняется быстрее, чем использование оператора like, если количество записей

Комментарии:

1. CHARINDEX не имеет подстановочных знаков, таких как ‘LIKE’ или ‘CONTAINS’, поэтому это не будет работать