Язык запросов Радио Свобода
ИЗ ЧЕГО СОСТОЯТ ЗАПРОСЫ
Каждый запрос является выражением, состоящим из операндов, операторов, скобок и модификаторов. Скобки используются для указания порядка, в котором будут обрабатываться фразы, составляющие запрос, в то время как модификаторы позволяют задать дополнительные контекстные условия поиска.
ОПЕРАНДЫ:
Слово
- любое слово естественного языка, на котором написаны документыбазы данных, такое, что предположительно оно содержится в документах
базы. Важной особенностью поисковой системы является возможность
задавать слова в запросе в любой форме (число, падеж, род,
склонение/спряжение). Если задать запрос из одного слова, то ему будут
соответствовать (будут релевантны) все документы базы данных, в которых
содержится это слово.
Примеры:
налоги льготы компьютер видео кредитимпексбанк онэксимбанк
Слово, написанное с прописной буквы. Такому слову соответствуют все
документы базы данных, содержащие это слово, написанное с прописной
буквы.
Примеры:
Орлов Кузнецов Соловьев
Слово с усечением справа - начало слова естественного языка, замкнутое
знаком *. Если задать запрос из одного слова с усечением справа, то
такому запросу будут релевантны все документы базы данных, в которых
содержатся слова, такие, что начало их нормализованной формы совпадает с
усеченным словом запроса.
Примеры:
дипломат* осуществл*
Слову запроса дипломат* будут релевантны документы, в которых есть слова
дипломат, дипломатия, дипломатический и т.п.
Слово с ограниченным усечением справа - начало слова, замкнутое знаками
!* за которыми следует цифра - допустимое число букв, которое может
следовать за общим началом в слове документа.
Например, слову запроса дипломат!*2 будут в документах соответствовать
слова дипломат, дипломатия, но не дипломатический.
Слово с усечением слева - знак *, за которым следует "хвост" нужного
слова. Формально слову соответствуют слова в базе данных, имеющие со
словом запроса общий конец. Однако следует иметь в виду, что поиск
производится не по текстам, а по словарю базы данных, в котором слова
документов нормализованы, поэтому слову с усечением слева могут
соответствовать документы, содержащие заданное слово в других формах (не
содержащие слово с заданным "хвостом"), например, слову запроса *техник
будут соответствовать документы, содержащие слова радиотехник, техники,
техника (родительный падеж слова техник), видеотехника и т.п. Неточность
поиска с усечением слева также связана с высокой омонимичностью
словоформ русского языка. Поэтому усечение слева обычно имеет смысл
употреблять только для слов, нераспознаваемых по морфологическому
словарю.
Слово с усечением слева и справа - знак *, за которым следует "середина
слова", замыкаемая знаком *, с возможным ограничением "хвоста"
(ограниченное усечение справа, описанное выше). Такому слову
соответствуют документы, в которых содержатся слова, включающие в себя
слово запроса, с учетом ограничения правого усечения. Этот элемент
запроса имеет смысл употреблять для поиска морфем (кусочков слова),
имеющих самостоятельный смысл, например, фрагменты химических терминов,
такие как *гекса*, *хлор* и т.п.
Слово с модификатором является словом естественного языка, за которым
следует знак ! и одна из опций: с или п.
Опция с указывает, что поиск должен вестись "с точностью до опечаток":
будут найдены не только документы, содержащие указанное слово, но и
документы, содержащие "похожие" слова.
Опция п указывает, что поиск должен вестись по "большой парадигме",
т.е. будут найдены не только вхождения указанного слова, но и
однокоренные слова.
Слово в двойных кавычках. Слово, содержащее специальные знаки (например,
скобки), должно быть записано в запросе заключенным в двойные кавычки. В
частности, слово не должно записываться как "не", чтобы оно не путалось
с оператором НЕ.
Дата. Дата, заданная в запросе, должна быть замкнута комбинацией !д или
!d. Это нужно для того, чтобы можно было отличить дату от схожей
цифровой комбинации, например, классификационного индекса. Даты можно
задавать с точностью до года, месяца и дня.
С точностью до года, например, 1990!д. Дате соответствуют документы, в
которых есть любые даты, относящиеся к 1990 году.
С точностью до месяца, например, 02.1994!д. Дате соответствуют
документы, в которых есть любые даты, относящиеся к февралю 1994 года.
С точностью до дня, например,
06.02.1994!д
Интервал дат - например,
22.06.194108.05.1945!д
Границы дат могут быть заданы с любой точностью. В языке поисковой
системы нет операторов поиска по датам "меньше" или "больше" заданной
даты. Если требуется найти документы, содержащие даты меньше или больше
требуемого значения, то используется интервал с подходящими границами.
Шаблон, по которому будут отождествляться слова документа.
В шаблоне можно употреблять:
любые знаки, из которых состоят слова документов, кроме знаков * и ?
знак *, обозначающий любую последовательность знаков в слове документа
знак ?, обозначающий один любой знак документа
Шаблон полезно употреблять, когда нам неизвестно правильное написание
слова, или известна только его часть.
Например: шевар*надзе, *05-?? и т.п.
ОПЕРАТОРЫ
Оператор И
Эквивалентные формы записи: и И and AND.
Оператор И соединяет операнды - слова и/или выражения в скобках. Если
оператор соединяет два слова А и B, то фразе A и B будут релевантны
документы содержащие и слово A и слово B. Фразе A и B и C будут релевантны
документы, содержащие и A и B и C. Другими словами, оператор И требует
совместного вхождения слов в документ.
Оператор И может быть опущен. Поэтому, например, следующие фразы будут
полностью эквивалентны:
ремонт компьютеров эквивалентно ремонт и компьютер
ремонт тракторов и телег эквивалентно ремонт и трактор и телега
Оператор ИЛИ
Эквивалентные формы записи: или ИЛИ or OR.
Оператор ИЛИ соединяет операнды - слова и/или выражения в скобках. Если
оператор соединяет два слова А и B, то фразе А или B будут релевантны
документы в которых содержится A или B, или A и B.
Старшинство операторов И и ИЛИ не определено - порядок их выполнения
определяется скобками.
Например, рассмотрим запрос:
(ремонт или продажа) и (компьютер или видеотехника)
Порядок вычисления этого запроса следующий. Сначала будет отобрано
множество документов, в которых есть слово ремонт или продажа. Затем будет
отобрано другое множество документов, в которых есть компьютер или
видеотехника. После этого будет выполнена операция И - если документ
входит в оба множества (т.е. в нем есть слово ремонт или продажа и слово
компьютер или видеотехника, то такой документ будет релевантен запросу.
Оператор следования :
Оператор : требует вхождения операндов в одно предложение документа в
заданном порядке.
При этом между словами документа, соответствующими операндам, может быть
сколько угодно других слов. Можно ужесточить требования к контексту, задав
максимально допустимое число слов, которые могут стоять между словами
(фразами) - операндами. Рассмотрим различные варианты запроса (ремонт или
продажа) компьютеров
(ремонт или продажа) : компьютеров
В документе должно быть предложение, в котором есть слово ремонт или слово
продажа или и ремонт и продажа, и хотя бы после одного из них, на любом
расстоянии есть слово компьютер.
(ремонт или продажа) :2 компьютеров
В документе должно быть предложение, в котором есть слово ремонт или слово
продажа или и ремонт и продажа, и хотя бы после одного из них, есть слово
компьютер, перед которым стоит не более двух других слов.
ПОИСК С ОГРАНИЧЕНИЕМ КОНТЕКСТА
Все запросы, которые рассматривались выше, накладывали условия,
относящиеся ко всему документу, т.е. требовалось, чтобы определенные слова
появлялись внутри документа, но при этом не накладывалось никаких
ограничений на расположение этих слов в документе и на расстояния между
ними. Однако, в случае баз данных, содержащих документы значительного
объема, это может приводить к тому, что будет найдено слишком много
документов (этот эффект известен под названием "поискового шума"). Можно
уменьшить этот шум, накладывая дополнительные ограничения на контекст, в
котором операнды запроса должны появляться в документе.
Модификаторы
Контекст поиска по фразе запроса всегда подразумевается в пределах поля и
может быть определен модификаторами:
как заданное число любых смежных предложений документа - /п /пN /s /sN
(формы эквивалентны), где N - число смежных предложений контекста, если
N отсутствует, то подразумевается N равное 1 (одно предложение);
как заданное число любых смежных слов любого предложения документа - /сN
/CN /wN /WN (формы c C w W эквивалентны, N - число смежных слов в
контексте, с С - русское "с").
Вместо знака / при записи модификаторов можно также использовать знак \,
что иногда позволяет уменьшить число переключений между регистрами
клавиатуры.
Область действия модификатора в запросе
Модификатор действует в пределах скобок, в которые он заключен. Если таких
скобок нет, то модификатор действует в пределах запроса. Поясним сказанное
рисунком, используя вместо слов буквы A, B, C, и т.д., и условные
модификаторы /a, /b, /c, и т.д.
область действия /a область действия /b область действия /с
((A B C /a)or(D : E F /b)or((L or M) and N /c))/d
область действия /d
Если в пределах одной области действия задано несколько модификаторов /сN
или /пN (N - число слов или предложений), то реально действует последний
из них.
Примеры и комментарии
Пример 1.
/дата 04.1996-05.1996!d /текст (сталинградская битва)
Найти документы, содержащие в обобщенном поле "дата" дату в интервале с
апреля 1996 г. по май 1996 г. и в обобщенном поле "текст" слова
сталинградский и битва в контексте "одно предложение".