2013-11-12 2 views
0

Я пытаюсь выполнить полный текстовый запрос MS SQL в одном столбце.MS SQL Как функция CONTAINSTABLE управляет данной строкой поиска?

Для этого я использую функцию «СОДЕРЖАЩАЯСЯ».

Ниже моя процедура магазина:

ALTER PROC [dbo].[USP_Videos_SearchVideos_ContainsTable] 
    @searcher varchar(2000) 

AS 

DECLARE @SearchString varchar(2000) 

SET @SearchString = 'FormsOf(INFLECTIONAL, "' + @searcher + '")' 

SELECT * 

FROM table_name AS v 
    INNER JOIN CONTAINSTABLE(table_name, TitleText, @SearchString) AS Ranker 
     ON v.ID = Ranker.[KEY] 
    INNER JOIN mst_Categories AS c 
     ON v.CategoryId = c.ID 


WHERE RANKER.RANK >= 100 

ORDER BY Ranker.RANK DESC, v.ViewCount DESC 

я мог пройти все «поиск строки», но результат содержит только те видео, которые содержат «строку поиска» полностью в их «название видео».

Этого не ожидается, вместо этого он должен возвращать результирующий набор, который содержит также флективные слова, поскольку я использую «FormsOf» в своей хранимой процедуре.

Прокомментируйте это.

ответ

0

Supported Forms of Query Terms (Full-Text Search) показывает поддерживаемые формы запроса:

флективных форм конкретного слова (термина поколение): флективных форм являются различные напрягается глагола или единственного и множественного числа существительного.

немного больше деталей на Searching for the Inflectional Form of a Specific Word:

Вы можете найти все различные напрягается глагола или обоих единственного и множественного числа существительного. Например, запрос, показанный в этой теме поисках какой-либо форма «нога» («нога», «нога», и так далее)

Таким образом, вы видите, вы можете искать перегибы в одного слова (глагол или существительное), а не фраза. То есть, FORMSOF(..,"search")' или 'FORMSOF(..,"string")', но не FORMSOF(..,"search string")'

Смежные вопросы