Для использования сложных поисковых запросов используется простой в использовании язык запросов, можно построить точный поисковый запросов на поиск архивной информации. Составление запросов будет объяснено ниже.
Для составления поискового запроса его необходимо ввести в строку поиска и нажать на кнопку поиск. Данные согласно вашего поискового запроса будут выведены в таблицу результатов поиска.
Термы
Запрос разделен на термы и операторы. существует два типа терм: Одиночные термы и фразы:
Одиночные термы это слова. Например "test" или "привет".
Фраза это группа слов обрамленная в кавычки например "привет Долли".
Термы могут быть скомпанованы с помощью логических операторов для составления сложных поисковых запросов.
Поля
Во время поиска вы можете указать поля или использовать поля по умолчанию.
Для использования поля введите название поля на англиском языке и завершите ввод поля двоеточием ":" ( subject: ) далее введите терм для поиска. Например нам необходимо найти письмо где в тепе письма будет указано "Питер Пен" и тело письма содержит "пиратский корабль". Данный запрос ( subject:"Питер Пен" AND body:"пиратский корабль" ) должен быть введен в строку поиска. Пожалуйста ознакомьтесь с полями для поиска доступными по умолчанию в Архива.
Логические операторы
Логические операторы позволяют комбинировать термы. Архива поддерживает следующие логические операторы AND, "+", OR, NOT и "-".
Info |
---|
логические операторы всегда должны быть только из заглавных букв |
OR
OR оператор по умолчанию используется для связи терм. Это означает, что если нет любого другого логического оператора между термами то оператор OR будет использован. OR соединяет термы и ощет документы в которых присутствует хотя бы один из терм. Это эквивалент объединения при использовании списков. Так-же символ || может быть использован вместо оператора OR.
Для поиска документов содержащих либо "яблок"
Для поиска документов содержащих либо "молоко убежало" или "молоко" используйте запрос:
"молоко убежало" или "молоко"
AND
Оператор AND позволяет связывать термы между собой таким образом, что все термы связанные данным оператором должны быть найдены в документе. Это аналог пересечения множеств. Символ && может быть использован вместо слова AND.
Для поиска документов содержащих "молоко убежало" и "вкусные плюшки" используйте запрос:
+
Оператор "+" или обязательный оператор требует чтобы терм находящийся за оператором "+" должен обязательно находится в поле или документе.
Для поиска документов, которые должны содержать "Яблоко" и могут содержать "груша", используется запрос:
+Яблоко груша
NOT
Оператор NOT исключает документы которые содержат термы после оператора NOT. Это эквивалент разницы множеств. Символ ! может быть использован вместо слова NOT.
Для поиска документов, содержащих "яблоко груша", но не "оранжевый грейпфрут", используется запрос:
"яблоко груша" NOT "оранжевый грейпфрут"
-
Оператор "-" или запрещающий оператор исключает документы которые содержат термы после операторы "-".
Для поиска документов, содержащих "яблоко груша", но не "оранжевые плоды винограда", используется запрос:
Группировка
Архива поддерживает использование скобок для группирования условий в подзапросы. Это может быть очень полезно, если вы хотите контролировать булеву логику для запроса.
Для поиска или "яблоко" или "груша" и "грейпфрут" в теме сообщения, используется запрос:
Групировка полей
Архива поддерживает использование скобок для группирования нескольких условий применительно к одному полю.
Для поиска заголовка, содержащего слово "яблоко" и фразу "оранжевой грейпфрут" в теме письма, используется запрос:
subject:(+яблоко +"оранжевой грейпфрут")
Info |
---|
К сожалению, использование * или ? символов в качестве начала терма запрещено |
Запрос регулярных выражений
Архива поддерживает поиск регулярного выражения, совпадающие с шаблоном между косой чертой "/". Синтаксис может измениться в релизах, но в настоящее время поддерживается синтаксис описан в классе RegExp. Например, чтобы найти документы, содержащие "moat" или "boat":
/[mb]oat/
Нечеткий поиск
Нечеткий поиск основан на расстоянии Левенштейна. Для использования нечеткого поиска используйте символ тильда "~". For example to search for a term similar in spelling to "roam" use the fuzzy search:
Поиск вернет термы foam и roams.
Дополнительный опционный параметр позволяет задать количество допустимых изменений. Значение между 0 и 2, например:
roam~1
Значение по умолчанию 2.
Поиск близких
Архива поддерживает поиск слов с определенной дистанцией между ними. Для данного поиска используется знак тильды "~" в конце фразы. Например необходимо найти документы где слово "яблоко" и "груша" находятся на расстоянии 10 слов между собой:
Поиск диапазонов
Диапазонные запросы позволяют найти документы, поле значения которых находится между нижней и верхней границами указанного диапазона. Диапазонные запросы могут включать или не включать верхнюю и нижнюю границы. Сортировка происходит лексикографически.
Info |
---|
Обратите внимание, следующие запросы не будут работать для поля даты: |
Бустинг термов
Архива предоставляет результаты согласно релевантности найденных документов запросу. Для бустинга термы используйте символ "^" с фактором буста (число) в конце терма который вы ищете. Чем выше буст фактор тем релевантнее данный терм будет в поиске. Бустинг позволяет управлять релевантностью документов подвергая бусту терм в документе. Например ищем в теме: яблоко груша (subject:яблоко груша)
и хотим чтобы терм "яблоко" был более релевантным, наберем:
Данный запрос сделает документы с темой яблоко более релевантными и они отобразаться выше в результатах поиска. Так же можно бустить фразы как в примере:
По умолчанию буст фактор равен 1. Так-же он должен быть положительным, и может быть меньше 1 (т.е. 0.2).
Экранирование специальных символов
Архива поддерживает экранирование специальных символов, которые могут быть частью запроса. Список специальных символов предоставлен ниже:
Для экранирования данных символов, используйте символ \ перед специальным символом. Например для поиска (1+1):2 используйте запрос:
Поиск с помощью регулярных выражений
Поиск с помощью регулярных выражений начинается и заканчивается символом /. Для примера поиск:
all:/< 6 - 9 >{ 1 } 019 ? 123 ? 45 ? 67 / |
будет использовать регулярное выражение "<6-9>{1}926?559?31?35".
Регулярные выражения можно построить используя следующий синтаксис:
regexp | ::= | unionexp | ||
| | ||||
unionexp | ::= | interexp | unionexp | (union) | |
| | interexp | |||
interexp | ::= | concatexp & interexp | (intersection) | [OPTIONAL] |
| | concatexp | |||
concatexp | ::= | repeatexp concatexp | (concatenation) | |
| | repeatexp | |||
repeatexp | ::= | repeatexp ? | (zero or one occurrence) | |
| | repeatexp * | (zero or more occurrences) | ||
| | repeatexp + | (one or more occurrences) | ||
| | repeatexp {n} | (n occurrences) | ||
| | repeatexp {n,} | (n or more occurrences) | ||
| | repeatexp {n,m} | (n to m occurrences, including both) | ||
| | complexp | |||
complexp | ::= | ~ complexp | (complement) | [OPTIONAL] |
| | charclassexp | |||
charclassexp | ::= | [ charclasses ] | (character class) | |
| | [^ charclasses ] | (negated character class) | ||
| | simpleexp | |||
charclasses | ::= | charclass charclasses | ||
| | charclass | |||
charclass | ::= | charexp - charexp | (character range, including end-points) | |
| | charexp | |||
simpleexp | ::= | charexp | ||
| | . | (any single character) | ||
| | # | (the empty language) | [OPTIONAL] | |
| | @ | (any string) | [OPTIONAL] | |
| | " <Unicode string without double-quotes> " | (a string) | ||
| | ( ) | (the empty string) | ||
| | ( unionexp ) | (precedence override) | ||
| | < <identifier> > | (named automaton) | [OPTIONAL] | |
| | <n-m> | (numerical interval) | [OPTIONAL] | |
charexp | ::= | <Unicode character> | (a single non-reserved character) | |
| | \ <Unicode character> | (a single character) |
The productions marked [OPTIONAL] are only allowed if specified by the syntax flags passed to the RegExp
constructor. The reserved characters used in the (enabled) syntax must be escaped with backslash (\) or double-quotes ("..."). (In contrast to other regexp syntaxes, this is required also in character classes.) Be aware that dash (-) has a special meaning in charclass expressions. An identifier is a string not containing right angle bracket (>) or dash (-). Numerical intervals are specified by non-negative decimal integers and include both end points, and if n and m have the same number of digits, then the conforming strings must have that length (i.e. prefixed by 0's).