Предложение 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