Правила составления запросов


Имеются пять видов запросов:

  •  свободные текстовые запросы;
  •  запросы-фразы;
  •  запросы сопоставления с образцом;
  •  относительные запросы;
  •  векторно-пространственные запросы.

Правила, относящиеся к запросам всех видов:

  •  в запросах не различаются строчные и прописные буквы;
  •  можно искать любое слово, если оно не содержится в списке исключений;
  •  для того чтобы использовать специальные символы в запросе (типа &, |, ^, # и $), нужно заключить запрос в кавычки;
  •  Значения даты и времени имеют одну из двух форм: yyyy/mmdd hh:mm:ss или yyyy-ram-dd hh:mm:ss. Первые два символа года и полного времени могут быть опущены. Если опускаются первые два символа года, дата интерпретируется как находящаяся в интервале между 1930 и 2029 гг. Трехзначное число миллисекунд может быть задано после секунд. Все даты и времена задаются в UTC (Universal Coordinated Time, Скоординированное всемирное время). Пример задания времени: 1993/П/7 12:04:23:123.

Дата и время относительно текущей даты и времени могут быть выражены со знаком "минус" (-), за которым следует одна или более пар "целое число-единица". Единицы задаются так: у — число лет, q — число кварталов (три месяца), гп — число месяцев, w — число недель, d — число дней, h — число часов, п — число минут из — число секунд. Числовые значения могут быть заданы в десятичном или в шестнадцатеричном виде. Шестнадцатеричные значения предваряются символами "0х".

Для поиска слова или фразы в заданном свойстве можно использовать оператор CONTAINS. Если оператор не задан, по умолчанию считается заданным оператор CONTAINS.
Следующие запросы эквивалентны:

  •  @DocTitle "Что-то важное";
  •  @DocTitle CONTAINS "Что-то важное".

Можно использовать булевы операторы AND, OR и NOT как в запросах на вхождение в содержимое, так и в запросах по свойствам. Оператор NEAR может применяться только в запросах по содержимому документов. Операторы в запросах могут быть записаны как в полной, так и в краткой форме (табл. 16.8).

Таблица 16.8. Полная и краткая формы операторов

Оператор
Длинная форма
Краткая форма
AND
AND
&
NOT
AND NOT
|
OR
OR
& !
NEAR
NEAR
Near, ~

Следует заметить, что булевы операторы доступны только в английском написании.

Булевы операторы рассматриваются в следующем порядке: NOT, AND и NEAR, OR.

Для свободных текстовых запросов можно указывать группу слов или законченное предложение. Служба индексирования находит документы, которые лучше всего соответствуют словам и фразам в свободном текстовом запросе. Булевы операторы и подстановочные символы в таком запросе игнорируются. Чтобы искать фразу, ее нужно или заключить в кавычки, или предварить тэгом (phrase). Слова в запросе на поиск фразы должны встретиться в документе в указанном порядке, без пропуска слов.
Для запросов сопоставления с образцом служба индексирования выбирает документы, соответствующие образцу, который задается пользователем. В такого рода запросах используются маски (wildcards), запросы, задающие словоформы, регулярные выражения и операторы отношений.
В относительных запросах для поиска документов, свойства которых лежат в некотором диапазоне, можно использовать операторы отношения: больше, меньше, равно, не равно и т. п.
Векторно-пространственные запросы предназначены для поиска документов, которые соответствуют списку слов и фраз. Документы, которые возвращаются после выполнения векторно-пространственного запроса, не обязательно соответствуют каждому термину в запросе. Ранг каждого документа указывает, насколько хорошо документ соответствует запросу. Можно задавать весовые коэффициенты, чтобы управлять относительной важностью терминов для получения результата. Допустимые значения весов находятся в диапазоне от 0,0 до 1,0.