Описание языка запросов
Типичный запрос состоит из поисковых лексем - слов,
шаблонов и чисел - связанных логическими
операторами и операторами поиска по полям.
Примеры запросов
- край
- Найти все документы содержащие словокрай
- край*
- Найти все документы, содержащие слова край и, которые начинаются с
край. Запросу отвечают слова: крайне, крайкома, крайней, крайнего
и т.д. Звездочка, стоящая в конце ключевого слова, означает любую последовательность
символов в количестве от 0 до 5
- край**
- Две звездочки, стоящие в конце ключевого слова, означает любую
последовательность символов, даже отсутствие таковых
- кр?й
- Знаку вопроса соответствует строго один символ. Запросу отвечают слова
край, крой, и т.д.
- край хабаровский
- Найти все документы содержащие словосочетание
"край хабаровский"
- край & хабаровский
- Найти все документы содержащие слова край и хабаровский
(они могут стоять в любом порядке и в разных частях документа)
- край &! приморский
- Найти все документы, в которых содержится слово край, но нет слова
приморский
- (край | глава) & приморский
- Найти все документы, в которых встречается слово приморский
одновременно со словом край или глава (или сразу с
обеими словами)
- глава~администрации
- Найти все документы в которых запрашиваемые слова отстоят в тексте друг
от друга в любом порядке не более чем в 10 позициях
- глава within 5 администрации
- Найти все документы в которых запрашиваемые слова отстоят в тексте друг
от друга в любом порядке на 5 позиций.
Замечание: оператор НЕ не может быть
использован в подзапросе, который включает оператор близости.
- source: (Российская газета)
- Найти все документы в которых поле source содержит фразу
Российская газета
- ((перв* | нулев* | пилотн*) within 3 (номер| презентац*)) ~ (газет* | журнал*)
- Найти все документы в которых есть сообщения о выходе в печать новых газет
или журналов
Слова это последовательность русских и латинских, больших и малых букв и цифр.
Все остальные символы, кроме специальных (операторов, метасимволов и круглых скобок)
игнорируются. Если слово состоит только из малых букв, то поиск будет идти
без учета регистра, но если в слове есть большие буквы, то будет искаться именно
такая форма. Наприме, слову:
- путина
- соответствуют путина, Путина, ПУТИНА, ПуТиНа и т.д.
- Путина
- соотвествует только слово Путина
При задании нечетких шаблонов слов могут использоваться следующие метасимволы:
Символ | Интерпретация |
* | от 0 до 5 любых символов |
** | произвольное количество любых символов, даже отсутствие таковых |
? | строго один произвольный символ |
Шаблон не может начинаться с метасимвола, т.е. указание вида '*ость' недопустимо.
Поисковые лексемы в запросе могут объединяться любым из следующих логических
операторов:
лексема & лексема
|
Оператор И. Поиск документов в которых есть обе лексемы. |
лексема | лексема
|
Оператор ИЛИ. Поиск документов в которых есть любая их этих лексем. |
! лексема
|
Оператор НЕ. Поиск документов в которых нет этой лексемы. |
лексема ~ лексема |
Оператор близости. Поиск документов в которых есть обе лексемы и они находятся не более чем в 10 позициях друг от друга в любом порядке |
лексема within N лексема |
Оператор близости. Поиск документов в которых есть обе лексемы и они находятся не более чем в N позициях друг от друга в любом порядке |
Если между лексемами отсутствует оператор, то, по умолчанию, подразумевается
словосочетание. Для поиска словосочетаний, также можно использовать кавычки:
"слово1 слово2", или круглые скобки: (слово1 слово2).
Модификатор поля позволяет производить поиск лексем только в определенных
полях. Синтаксис этого оператора следующий: имя_поля:(поисковые лексемы)
В библиотечных документах доступны следующие поля:
Имя | Значение |
source | Источник |
headline | Заголовок |
text | Текст |
remarks | Примечания |
theme | Тема |
Следует заметить, что обязательными полями (имеющимися во всех документах
базы) являются только source, headline и text, все
остальные поля могут отсутствовать. Если в запросе есть указание поиска
по значению какого-либо поля, то будут выданы ссылки только на те документы,
где это поле есть и его значение удовлетворяет запросу.