Audiophile's Software
Information about my project, called «Audiophile's Software».
Audiophile's Software

Синтаксис поисковых запросов 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 <шаблон_сортировки>
Ставится в конце запроса.

Информация от спонсора

AppleEXPRESS: экспресс-ремонт продукции Apple (iPhone, iPod, iPad). Здесь Вы можете оперативно заменить стекло на айфоне 5. Только оригинальные комплектующие. Гарантия на все выполняемые работы.