Правила составления запросов
Имеются пять видов запросов:
- свободные текстовые запросы;
- запросы-фразы;
- запросы сопоставления с образцом;
- относительные запросы;
- векторно-пространственные запросы.
Правила, относящиеся к запросам всех видов:
- в запросах не различаются строчные и прописные буквы;
- можно искать любое слово, если оно не содержится в списке исключений;
- для того чтобы использовать специальные символы в запросе (типа &, |, ^, # и $), нужно заключить запрос в кавычки;
- Значения даты и времени имеют одну из двух форм: yyyy/mmdd hh:mm:ss или yyyy-ram-dd hh:mm:ss. Первые два символа года и полного времени могут быть опущены. Если опускаются первые два символа года, дата интерпретируется как находящаяся в интервале между 1930 и 2029 гг. Трехзначное число миллисекунд может быть задано после секунд. Все даты и времена задаются в UTC (Universal Coordinated Time, Скоординированное всемирное время). Пример задания времени: 1993/П/7 12:04:23:123.
Дата и время относительно текущей даты и времени могут быть выражены со знаком "минус" (-), за которым следует одна или более пар "целое число-единица". Единицы задаются так: у – число лет, q – число кварталов (три месяца), m – число месяцев, w – число недель, d – число дней, h – число часов, n – число минут ss – число секунд. Числовые значения могут быть заданы в десятичном или в шестнадцатеричном виде. Шестнадцатеричные значения предваряются символами "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.