Поиск слов или фраз, расположенных рядом с другими словами или фразами (выражение с учетом расположения)

Можно выполнять поиск слов или фраз, встречающихся в тексте рядом с другими словами или фразами. Кроме того, можно указать два слова или две фразы в любом порядке и получить одинаковый результат. В следующем примере выполняется поиск слова «reflector», расположенного неподалеку от слова «bracket».

USE AdventureWorks2008R2;
GO
SELECT DocumentID, DocumentSummary, Document
FROM Production.Document AS DocTable INNER JOIN
CONTAINSTABLE(Production.Document, Document, '(Reflector NEAR Bracket)' ) AS KEY_TBL
ON DocTable.DocumentID = KEY_TBL.[KEY]
ORDER BY KEY_TBL.RANK;
GO

Обратите внимание, что для достижения такого же результата можно поменять местами термы в функции CONTAINSTABLE:

CONTAINSTABLE(Production.Document, Document, '(Bracket NEAR Reflector)' ) AS KEY_TBL

Вместо ключевого слова NEAR в предыдущем запросе можно использовать «тильду» (~) и получить те же результаты:

CONTAINSTABLE(Production.Document, Document, '(Reflector ~ Bracket)' ) AS KEY_TBL

В условиях поиска можно указать более двух слов или фраз, например:

CONTAINSTABLE(Production.Document, Document, '(Reflector ~ Bracket ~ Installation)' ) AS KEY_TBL

Это означает, что слово «Reflector» должно быть расположено рядом со словом «Bracket», которое, в свою очередь, должно находиться около слова «Installation».