Поделиться через


Предложение WHERE в синтаксисе SQL службы поиска SharePoint

Дата последнего изменения: 21 апреля 2010 г.

Применимо к: SharePoint Server 2010

Используется для указания условий, которые определяют, включается ли документ в результаты, возвращаемые запросом.

…WHERE [<group_aliases>] <search_condition>

Примечания

На самом высоком уровне расположены два части синтаксиса предложения WHERE, столбцы, в которых выполняется поиск, и условие поиска.

Для упрощения сложных запросов можно назначить группе из одного или нескольких столбцов псевдоним. Дополнительные сведения о псевдонимах см. в статье Предикат псевдонима группы WITH -- AS в SQL-синтаксисе службы поиска SharePoint.

Часть предложения WHERE с условием поиска определяет критерий сопоставления для поиска. Документы возвращаются, если они соответствуют указанным сравнениям и логическим сочетаниям запроса. Результат условия поиска — это логическое значение, равное TRUE или FALSE. Если результат равен TRUE, документ включается. Если результат равен FALSE, документ не включается.

Документам, возвращаемым в запросе SharePoint Server, назначаются значения оценки в соответствии с тем, насколько они удовлетворяют условиям поиска.

Определение областей поиска

Можно указать, должны ли результаты поиска содержать контент из определенной области поиска в условии поиска, заданном в предложении WHERE. Далее указан соответствующий синтаксис:

…FROM scope() WHERE "scope"=<search scope name>…

Пример:

SELECT title, author, rank FROM scope() WHERE "scope"='All Sites'

Предикаты поиска

Предикаты поиска — это выражения, которые объявляют какой-то факт об определенном значении. Документы, соответствующие требованиям предиката, имеют определенное значение для свойства, заданного в предикате.

Условие поиска состоит из одного или нескольких предикатов или условий поиска, совмещенных с помощью логических операторов AND, OR или AND NOT. Дополнительные унарный оператор NOT можно использовать для инвертирования логического значения предиката или условия поиска. Для группировки и вложения логических выражений можно использовать круглые скобки.

В следующей таблице показан приоритет логических операторов.

Порядок следования

Логический оператор

Первый (высший)

NOT

Второй

AND

Третий (низший)

OR

Логические операторы одного типа являются ассоциативными и для них порядок вычисления не указывается. Например, результат вычисления выражений (A AND B) AND (C AND D) и (B AND C) AND (A AND D) будет одинаков.

ПримечаниеПримечание

Нельзя применять унарный логический оператор NOT к предикату CONTAINS или FREETEXT, если этот предикат указан первым в предложении WHERE. Например,

WHERE NOT CONTAINS ('computer')

не принимается. Однако

WHERE CONTAINS ('software') AND NOT CONTAINS ('computer')

принимается.

В сложных запросах можно уделить больше внимания соответствиям в одних столбцах, чем в других. Например, при поиске документов, в которых обсуждается "разработка программного обеспечения", поиск искомого термина в заголовке документа более вероятно будет "хорошим" совпадением, чем поиск отдельных слов в тексте документа. Чтобы влиять на оценку документов таким способом, SQL поддерживает взвешивание условий поиска. Дополнительные сведения о взвешивании столбцов см. в статьях Предикат CONTAINS в синтаксисе SQL поиска SharePoint и Предикат FREETEXT в синтаксисе SharePoint Search SQL.

В в корпоративной среде SharePoint существуют две группы предикатов поиска. Предикаты полнотекстового поиска обычно выделяют значение контента, заголовка и других столбцов и поддерживают лингвистическое выделение (например, альтернативные формы слов, фразы, поиск с учетом расположения). С другой стороны, предикаты неполнотекстового поиска выделяют значение указанных столбцов и не выполняют лингвистическую обработку, но в нескольких случаях предоставляют возможности шаблонов сопоставления на основе символов.

ПримечаниеПримечание

Если запрос возвращает документ, так как значение предиката неполнотекстового предиката для этого документа равно TRUE, значение оценки равно 1000.

В следующей таблице описываются предикаты полнотекстового и неполнотекстового поиска.

Полнотекстовый предикат

Описание

CONTAINS

Поддерживает комплексный поиск в текстовых столбцах документа (например, заголовке, содержимом). Может искать формы искомых слов с окончанием, тестировать близость расположения слов и выполнять логическое сравнение. Условие поиска могут содержать подстановочные знаки.

FREETEXT

Поиск документов в соответствии со значением фразы поиска. Выделяются связанные слова и аналогичные фразы, а оценка столбца вычисляется на основе того, как близко документ соответствует фразе поиска. Условие поиска не может содержать подстановочные знаки.

Неполнотекстовый предикат

Описание

LIKE

Значения столбцов сравниваются с помощью шаблонов сопоставления с подстановочными знаками.

Сравнение значений литералов

Значения столбцов сравниваются со строковыми значениями, датами, временными метками, числовыми и другими значениями. Этот предикат поддерживает равенство и неравенства, такие как больше и меньше.

Сравнения нескольких значений (ARRAY)

Столбцы со множеством значений сравниваются с массивом литералов.

NULL

Значения столбцов, не определенные для документа, можно обнаружить с помощью предиката NULL.

Содержание

Предикат псевдонима группы WITH -- AS в SQL-синтаксисе службы поиска SharePoint

Полнотекстовые предикаты в SQL-синтаксисе поиска SharePoint

Неполнотекстовые предикаты в SQL-синтаксисе поиска SharePoint

См. также

Ссылка

Инструкция SELECT в SQL-синтаксисе поиска SharePoint

Предложение FROM в синтаксисе SQL поиска SharePoint

Концепции

Справочник по синтаксису SQL поиска SharePoint