Синтаксис поисковых запросов foobar2000
Синтаксис поисковых запросов foobar2000
Условные обозначения
Запросы выделены курсивом.
Пример: %rating% GREATER 3
Примеры запросов могут содержать элементы, заключенные в угловые скобки. Их название указывает, на что их надо заменить в случае с реальными запросами. Если в одном примере имеется несколько таких элементов, к их именам добавляется номер.
Пример: <поле> GREATER <число>
В данном документе используются следующие типы элементов:
-
<поле>
Ссылка на поле тегов. Это может быть как простое название поля, так и форматированное выражение. Подробнее смотрите в примечаниях. -
<число>
Целочисленное значение. -
<строка>
Текстовое значение, которое может быть заключено в двойные кавычки. Смотрите примечания. -
<время>
Значения времени или выражения, возвращающие значения времени. Подробнее смотрите Операторы времени. -
<выражение>
Выражения в сложных запросах. Должны соответствовать правилам, указанным в разделе Расширенный поиск.
Простой поиск
При простом поиске дескрипторы не используются.
-
<любая строка>
Возвращает объекты, имеющие все слова строки в метаданых или в пути к файлу.
При использовании простого поиска диакритичесские знаки не учитываются, таким образом “foo” будет приравниваться к “foo”, так же как и к “foo” или “foo”.
Расширенный поиск
Расширенный поиск позволяет создавать более сложные запросы. В нём есть возможность использовать некоторые дескрипторы для формирования определенных сопоставлений и комбинирования множественных запросов.
Текстовые выражения
-
<поле> HAS <строка> (содержит)
Возвращает только объекты, у которых поле метаданных с названием <поле> включает содержимое элемента <строка> .
Пример: title HAS blah -
<поле> IS <строка> (соответствует)
Возвращает только те объекты, у которых поле метаданных с названием <поле> соответствует занчению элемента <строка>.
Пример: artist IS blah -
* HAS <строка>
То же, что и простой поиск, однако может использоваться с логическими операторами (см. ниже).
Числовые выражения
Выполняет целочисленное сравнение значения хранящегося в <поле> и значения <число>, например ”%rating% GREATER 3”.
-
<поле> GREATER <число>(больше)
-
<поле> LESS <число>(меньше)
-
<поле> EQUAL <число>(равно)
Использование метаданных
-
<поле> MISSING (отсутствует)
Возвращает только те объекты, у которых отсутствует поле метаданных с названием <поле>.
Пример: genre MISSING -
<поле> PRESENT (имеется)
Возвращает только те объекты, которые содержат поле метаданных с названием <поле>.
Пример: genre PRESENT
Операторы времени
-
<время1> BEFORE <время2> (раньше)
Возвращает объекты, для которых значение времени <время1> меньше, чем значение времени <время2>.
Пример: %last_modified% BEFORE 2008 -
<время1> AFTER <время2> (позже)
Возвращает объекты, для которыз значеине времени <время1> больше, чем значение <время2>.
Пример: %last_modified% AFTER 2008 -
<время1> SINCE <время2> (не ранее)
Возвращает объекты, для которых значение времени <время1> не меньше значения <время2>.
Пример: %last_modified% SINCE 2007 -
<время1> DURING <время2> (в течение)
Возвращает объекты, для которых <время1> является подмножеством периода <время2>.
Пример: %last_modified% DURING 2007 -
<время> DURING LAST <число> <единица_времени> (на протяжении последних)
Возвращает объекты, для которых значение <время> попадает в заданный период времени.
<единица времени> может иметь значение SECONDS, MINUTES, HOURS, DAYS или WEEKS.
Пример: %last_modified% DURING LAST 2 WEEKS (изменено в течение последних двух недель)
Если <число> равно 1, выражение может быть упрощено до <время> DURING LAST SECOND/MINUTE/HOUR/DAY/WEEK
Значения времени в данных выражениях должны соответствовать одному из следующих форматов: ГГГГ, ГГГГ-ММ, ГГГГ-ММ-ДД, ГГГГ-ММ-ДД hh, ГГГГ-ММ-ДД чч:мм, ГГГГ-ММ-ДД чч:мм:сс.
Комбинированные запросы
-
<выражение1> AND <выражение2>
Возвращает объекты, для которых оба выражения истинны.
Пример: artist IS blah AND title HAS blah
-
<выражение1> OR <выражение2>
Возвращает объектыЯ, для которых хотя бы одно выражение истинно. -
NOT <выражение>
Возвращает объекты, для которых выражение ложно.
Пример: NOT %last_played% AFTER 2007
Сортировка результатов
Вы можете поместить оператор SORT BY в конец поискового запроса, если хотите чтобы результаты были отсортированы в соответствии с указанным шаблоном.
-
SORT BY <sort-pattern>, SORT ASCENDING BY <шаблон_сортировки>
Сортировать результаты по возрастанию. -
SORT DESCENDING BY <шаблон_сортировки>
Сортировать результаты по убыванию.
Примечания
-
<поле> and <строка> для операторов HAS и IS выражения, имеющие пробелы или скобки, следует заключать в двойные кавычки (”).
-
Если элемент <поле> для HAS, IS, GREATER, LESS, EQUAL содержит хотя бы один из символов #$%, он будет обработан как строка форматирования.
Пример: %codec% IS MP3 -
Если элемент <поле> для HAS, IS, GREATER, LESS, EQUAL не содержит знаков #$%, он будет расценен как название поля метаданных.
Пример: artist IS Radiohead
Помните, что таким образом вы не сможете запросить технические данные (например, спецификацию кодека) или информацию, предоставляемую плагинами (playback statistics и т. п.). -
Использование строк с форматированием вместо простых названий полей уменьшит скорость поиска для больших библиотек и сделает невозможной обработку множественных значений полей оператором IS - например, трек с двумя именами исполнителя “name1” и “name2”, будетнайден с помощью запроса artist IS name1, но не с помощью %artist% IS name1.
-
Для управления последовательностью действий над комбинированными выражениями заключайте отдельные выражения в скобки.
Пример: ( (artist IS blah) AND (title HAS blah) ) OR (%rating% GREATER 3) -
Все поисковые запросы нечувствительны к регистру. Все дескрипторы должны быть в верхнем регистре.
Сводная таблица операторов
Оператор | Синтаксис | Комментарий |
---|---|---|
AFTER | <время1> AFTER <время2> | |
AND | <выражение1> AND <выражение2> | |
BEFORE | <время1> BEFORE <время2> | |
DURING | <время1> DURING <время2> | |
DURING LAST | <время> DURING LAST <число> SECONDS/MINUTES/HOURS/DAYS/WEEKS <время> DURING LAST SECOND/MINUTE/HOUR/DAY/WEEK |
|
EQUAL | <поле> EQUAL <число> | |
GREATER | <поле> GREATER <число> | |
HAS | <поле> HAS <строка> * HAS <строка> |
|
IS | <поле> IS <строка> | |
LESS | <поле> LESS <число> | |
MISSING | <поле> MISSING | |
NOT | NOT <выражение> | |
OR | <выражение1> OR <выражение2> | |
PRESENT | <поле> PRESENT | |
SINCE | <время1> SINCE <время2> | |
SORT BY | SORT BY <шаблон_сортировки> SORT DESCENDING BY <шаблон_сортировки> |
Ставится в конце запроса. |
Информация от спонсора
Booslike: раскрутка Вконтакте и Инстаграм. Здесь доступная накрутка подписчиков инстаграм — как для тех, кто занимается продажами, так и для обычных пользователей, желающих увеличить список друзей.