...
Запрос разделен на термы и операторы. существует два типа терм: Одиночные термы и фразы:
Одиночные термы это слова. Например "test" или "привет".
Фраза это группа слов обрамленная в кавычки например "привет Долли".
Термы могут быть скомпанованы с помощью логических операторов для составления сложных поисковых запросов.
...
"яблоко груша" NOT "оранжевый грейпфрут"
Info |
---|
Оператор NOT не может быть использован с одним термом. Например, данный запрос будет пустым: NOT "яблоко груша" Для выполнения NOT запроса, необходимо сначала выделить более большее множество и из него убрать меньшее. Например |
-
Оператор "-" или запрещающий оператор исключает документы которые содержат термы после операторы "-".
...
Архива поддерживает использование скобок для группирования нескольких условий применительно к одному полю.
Для поиска заголовка, содержащего слово "яблоко" и фразу "оранжевой грейпфрут" в теме письма, используется запрос:
subject:(+яблоко +"оранжевой грейпфрут")
...
Архива поддерживает поиск по шаблону одной буквы или множества букв в отдельных термах но не фразах.
Для поиска по шаблону одной буквы используйте символ вопросительного знака "?".
Для поиска по шаблону множества букв используйте символ звездочка "*".
Шаблон замены одного символа ищет все термы которые соответсвуют поисковому терму с заменой одного символа. Например для поиска слова "text" или "test" вы можете использовать следующий запрос:
"*" ищет совпадения 0 или большего количества символов. Например, для поиска test, tests или tester, вы можете использовать следующий запрос:
Так же данный символ можно использовать в середине терма.
Info |
---|
К сожалению, использование * или ? символов в качестве начала терма запрещено |
Запрос регулярных выражений
Архива поддерживает поиск регулярного выражения, совпадающие с шаблоном между косой чертой "/". Синтаксис может измениться в релизах, но в настоящее время поддерживается синтаксис описан в классе RegExp. Например, чтобы найти документы, содержащие "moat" или "boat":
/[mb]oat/
...
Архива поддерживает поиск слов с определенной дистанцией между ними. Для данного поиска используется знак тильды "~" в конце фразы. Например необходимо найти документы где слово "яблоко" и "груша" находятся на расстоянии 10 слов между собой:
...
Поиск диапазонов
Диапазонные запросы позволяют найти документы, поле значения которых находится между нижней и верхней границами указанного диапазона. Диапазонные запросы могут включать или не включать верхнюю и нижнюю границы. Сортировка происходит лексикографически.
This will find documents whose sent date fields have values between 20020101 and 20030101, inclusive. Note that Range Queries are not reserved for date fields. It is possible to use range queries with non-date fields:
Info |
---|
Обратите внимание, следующие запросы не будут работать для поля даты: |
This will find all documents whose titles are between Aida and Carmen, but not including Aida and Carmen. Inclusive range queries are denoted by square brackets. Exclusive range queries are denoted by curly brackets.
...
Архива provides the relevance level of matching documents based on the terms found. To boost a term use the caret, "^", symbol with a boost factor (a number) at the end of the term you are searching. The higher the boost factor, the more relevant the term will be. Boosting allows one to control the relevance of a document by boosting its term. For example, assuming one is searching for:
and one wants the term "apple" to be more relevant. Boost it using the ^ symbol along with the boost factor next to the term. Type:
This will make documents with the term apple appear more relevant. You can also boost Phrase Terms as in the example:
By default, the boost factor is 1. Although the boost factor must be positive, it can be less than 1 (e.g. 0.2).
Escaping Special Characters
Архива supports escaping special characters that are part of the query syntax. The current list special characters are:
Бустинг термов
Архива предоставляет результаты согласно релевантности найденных документов запросу. Для бустинга термы используйте символ "^" с фактором буста (число) в конце терма который вы ищете. Чем выше буст фактор тем релевантнее данный терм будет в поиске. Бустинг позволяет управлять релевантностью документов подвергая бусту терм в документе. Например ищем в теме: яблоко груша (subject:яблоко груша)
и хотим чтобы терм "яблоко" был более релевантным, наберем:
Данный запрос сделает документы с темой яблоко более релевантными и они отобразаться выше в результатах поиска. Так же можно бустить фразы как в примере:
По умолчанию буст фактор равен 1. Так-же он должен быть положительным, и может быть меньше 1 (т.е. 0.2).
Экранирование специальных символов
Архива поддерживает экранирование специальных символов, которые могут быть частью запроса. Список специальных символов предоставлен ниже:
To escape these character use the \ before the character. For example to search for Для экранирования данных символов, используйте символ \ перед специальным символом. Например для поиска (1+1):2 use the queryиспользуйте запрос:
Поиск с помощью регулярных выражений
Поиск с помощью регулярных выражений начинается и заканчивается символом /. Для примера поиск:
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).