...
Запрос разделен на термы и операторы. существует два типа терм: Одиночные термы и фразы:
Одиночные термы это слова. Например "test" или "привет".
Фраза это группа слов обрамленная в кавычки например "привет Долли".
Термы могут быть скомпанованы с помощью логических операторов для составления сложных поисковых запросов.
...
Info |
---|
логические операторы всегда должны быть только из заглавных букв |
OR
OR оператор по умолчанию используется для связи терм. Это означает, что если нет любого другого логического оператора между термами то оператор OR будет использован. OR соединяет термы и ощет документы в которых присутствует хотя бы один из терм. Это эквивалент объединения при использовании списков. Так-же символ || может быть использован вместо оператора OR.
...
"молоко убежало" или "молоко"
AND
Оператор AND позволяет связывать термы между собой таким образом, что все термы связанные данным оператором должны быть найдены в документе. Это аналог пересечения множеств. Символ && может быть использован вместо слова AND.
...
"яблоко груша" NOT "оранжевый грейпфрут"
Info |
---|
Оператор NOT не может быть использован с одним термом. Например, данный запрос будет пустым: NOT "яблоко груша" Для выполнения NOT запроса, необходимо сначала выделить более большее множество и из него убрать меньшее. Например |
-
Оператор "-" или запрещающий оператор исключает документы которые содержат термы после операторы "-".
...
Архива поддерживает использование скобок для группирования условий в подзапросы. Это может быть очень полезно, если вы хотите контролировать булеву логику для запроса.
Для поиска или "яблоко" или "груша" и "грейпфрут" в теме сообщения, используется запрос:
...
Групировка полей
Архива поддерживает использование скобок для группирования нескольких условий применительно к одному полю.
Для поиска заголовка, содержащего слово "яблоко" и фразу "оранжевой грейпфрут" в теме письма, используется запрос:
subject:(+яблоко +"оранжевой грейпфрут")
...
Архива поддерживает поиск по шаблону одной буквы или множества букв в отдельных термах но не фразах.
Для поиска по шаюлону одной буквыTo perform a single character wildcard search use the "?" symbol.
To perform a multiple character wildcard search use the "*" symbol.
The single character wildcard search looks for terms that match that with the single character replaced. For example, to search for "text" or "test" you can use the search:
Multiple character wildcard searches looks for 0 or more characters. For example, to search for test, tests or tester, you can use the search:
You can also use the wildcard searches in the middle of a term.
...
Info |
---|
К сожалению, использование * или ? символов в качестве начала терма запрещено |
Запрос регулярных выражений
Архива поддерживает поиск регулярного выражения, совпадающие с шаблоном между косой чертой "/". Синтаксис может измениться в релизах, но в настоящее время поддерживается синтаксис описан в классе RegExp. Например, чтобы найти документы, содержащие "moat" или "boat":
/[mb]oat/
Нечеткий поиск
Нечеткий поиск основан на расстоянии Левенштейна. Для использования нечеткого поиска используйте символ тильда "~". For example to search for a term similar in spelling to "roam" use the fuzzy search:
This search will find terms like foam and roams.
...
roam~0.8
...
Архива supports finding words are a within a specific distance away. To do a proximity search use the tilde, "~", symbol at the end of a Phrase. For example to search for a "apple" and "pear" within 10 words of each other in a document use the search:
...
Range Queries allow one to match documents whose field(s) values are between the lower and upper bound specified by the Range Query. Range Queries can be inclusive or exclusive of the upper and lower bounds. Sorting is done lexicographically.
Поиск вернет термы foam и roams.
Дополнительный опционный параметр позволяет задать количество допустимых изменений. Значение между 0 и 2, например:
roam~1
Значение по умолчанию 2.
Поиск близких
Архива поддерживает поиск слов с определенной дистанцией между ними. Для данного поиска используется знак тильды "~" в конце фразы. Например необходимо найти документы где слово "яблоко" и "груша" находятся на расстоянии 10 слов между собой:
Поиск диапазонов
Диапазонные запросы позволяют найти документы, поле значения которых находится между нижней и верхней границами указанного диапазона. Диапазонные запросы могут включать или не включать верхнюю и нижнюю границы. Сортировка происходит лексикографически.
...
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:
...
Бустинг термов
Архива предоставляет результаты согласно релевантности найденных документов запросу. Для бустинга термы используйте символ "^" с фактором буста (число) в конце терма который вы ищете. Чем выше буст фактор тем релевантнее данный терм будет в поиске. Бустинг позволяет управлять релевантностью документов подвергая бусту терм в документе. Например ищем в теме: яблоко груша (subject:яблоко груша)
и хотим чтобы терм "яблоко" был более релевантным, наберем:
Данный запрос сделает документы с темой яблоко более релевантными и они отобразаться выше в результатах поиска. Так же можно бустить фразы как в примере:
По умолчанию буст фактор равен 1. Так-же он должен быть положительным, и может быть меньше 1 (т.е. 0.2).
Escaping Special Characters
Архива supports escaping special characters that are part of the query syntax. The current list special characters are:
Экранирование специальных символов
Архива поддерживает экранирование специальных символов, которые могут быть частью запроса. Список специальных символов предоставлен ниже:
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).