<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=72.230.134.188</id>
	<title>Hydrogenaudio Knowledgebase - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hydrogenaudio.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=72.230.134.188"/>
	<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Special:Contributions/72.230.134.188"/>
	<updated>2026-04-28T20:18:24Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Query_syntax&amp;diff=24106</id>
		<title>Foobar2000:Query syntax</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Query_syntax&amp;diff=24106"/>
		<updated>2013-02-10T10:11:43Z</updated>

		<summary type="html">&lt;p&gt;72.230.134.188: /* Text expressions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Query syntax help=&lt;br /&gt;
&lt;br /&gt;
This page details the syntax that can be used to query for matching files in [[Foobar2000:Foobar2000|foobar2000]]. For a list of the actual fields that can be queried with this, see the [[Foobar2000:Title_Formatting_Reference|title-formatting reference]] page.&lt;br /&gt;
&lt;br /&gt;
==Conventions in this document==&lt;br /&gt;
&lt;br /&gt;
Queries are written in &#039;&#039;italics&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;rating GREATER 3&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
Query examples may contain placeholders which are enclosed in angle brackets. Their name indicates what should they need to be replaced with in a real query. If multiple placeholders of the same type occur in the same query example, a number will be appended to the name.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;&amp;amp;lt;field&amp;amp;gt; GREATER &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
The following common types of placeholders are used in the rest of this document: &lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; – A reference to a tag field. This can be either a plain field name (e.g. &#039;&#039;artist&#039;&#039;) or a title formatting expression (e.g. &#039;&#039;&amp;quot;%artist%&amp;quot;&#039;&#039;). See [[Foobar2000:Query_syntax#Notes|Notes]] for details.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;number&amp;amp;gt;&#039;&#039; – An integer value.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039; – A text value that may be enclosed in double quotation marks. See [[Foobar2000:Query_syntax#Notes|Notes]] for details.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time&amp;amp;gt;&#039;&#039; – A time value or a title formatting expression that evaluates to a time value. See [[Foobar2000:Query_syntax#Time Expressions| Time Expressions]] for details.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;expression&amp;amp;gt;&#039;&#039; – A query expression in a composed query. This has to follow the rules described under [[Foobar2000:Query_syntax#Advanced Search|Advanced Search]] below.&lt;br /&gt;
&lt;br /&gt;
==Simple search==&lt;br /&gt;
The simple search mode does not use any keywords. &lt;br /&gt;
* &#039;&#039;&amp;amp;lt;any string&amp;amp;gt;&#039;&#039; – Returns only items that have all words from specified string in their metadata or file path.&lt;br /&gt;
&lt;br /&gt;
==Advanced search==&lt;br /&gt;
The advanced search allows the construction of more complex queries. It offers several keywords to perform specific types of comparisons and to combine multiple query expressions.&lt;br /&gt;
&lt;br /&gt;
===Text expressions===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; – Returns only items that have all words from &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039; in metadata field named &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;title HAS blah&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; IS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; – Returns only items where (at least one) metadata field &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; is equal to &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;artist IS blah&#039;&#039;&lt;br /&gt;
* &#039;&#039;*HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; – Same as simple search, but can be combined using logical operators (see below).&lt;br /&gt;
* &#039;&#039;ALL&#039;&#039; - No operators. Returns all items in media library. Example: &#039;&#039;ALL&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Numeric expressions===&lt;br /&gt;
Performs integral number comparison between the value of a &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; and a &#039;&#039;&amp;amp;lt;number&amp;amp;gt;&#039;&#039;, e.g. &amp;quot;&#039;&#039;rating GREATER 3&#039;&#039;&amp;quot;. &lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; GREATER &amp;amp;lt;number&amp;amp;gt;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; LESS &amp;amp;lt;number&amp;amp;gt;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; EQUAL &amp;amp;lt;number&amp;amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Metadata expressions===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; MISSING&#039;&#039; – Returns only items that don&amp;amp;#039;t have a metadata field named &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;genre MISSING&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; PRESENT&#039;&#039; – Returns only items that have a metadata field named &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;genre PRESENT&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Time expressions===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; BEFORE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is before &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;%last_modified% BEFORE 2008&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; AFTER &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is after &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;%last_modified% AFTER 2008&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; SINCE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is not before &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;%last_modified% SINCE 2007&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; DURING &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is a subset of &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039; period. Example: &#039;&#039;%last_modified% DURING 2007&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST &amp;amp;lt;number&amp;amp;gt; &amp;amp;lt;time-unit&amp;amp;gt;&#039;&#039; – Returns items where &#039;&#039;&amp;amp;lt;time&amp;amp;gt;&#039;&#039; value is contained in the specified period. &#039;&#039;&amp;amp;lt;time-unit&amp;amp;gt;&#039;&#039; can be one of &#039;&#039;SECONDS&#039;&#039;, &#039;&#039;MINUTES&#039;&#039;, &#039;&#039;HOURS&#039;&#039;, &#039;&#039;DAYS&#039;&#039;, or &#039;&#039;WEEKS&#039;&#039;. Example: &#039;&#039;%last_modified% DURING LAST 2 WEEKS’’. If &#039;&#039;&amp;amp;lt;number&amp;amp;gt;&#039;&#039; is 1, the expression can be simplified to &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST SECOND/MINUTE/HOUR/DAY/WEEK’’.&lt;br /&gt;
Time values used in these expressions must be in one of the following formats: YYYY, YYYY-MM, YYYY-MM-DD, YYYY-MM-DD hh, YYYY-MM-DD hh:mm, YYYY-MM-DD hh:mm:ss.&lt;br /&gt;
&lt;br /&gt;
===Composed queries===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; AND &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; – Returns only items where both expressions are true. Example: &#039;&#039;artist IS blah AND title HAS blah&#039;&#039; – You can also enclose expressions in parentheses to control the evaluation order. Example: &#039;&#039;( (artist IS blah) AND (title HAS blah) ) OR (rating GREATER 3)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; OR &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; – Returns only items where at least one expression is true.&lt;br /&gt;
* &#039;&#039;NOT &amp;amp;lt;expression&amp;amp;gt;&#039;&#039; – Returns only items where the expression is false. Example: &#039;&#039;NOT last_played AFTER first_played&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Sorting results==&lt;br /&gt;
You can put a &#039;&#039;SORT BY&#039;&#039; operator at the end of your search expression to produce search results sorted by the specified title formatting pattern. &lt;br /&gt;
* &#039;&#039;SORT BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039;, &#039;&#039;SORT ASCENDING BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; – Sort results in ascending order.&lt;br /&gt;
* &#039;&#039;SORT DESCENDING BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; – Sort results in descending order.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
===General===&lt;br /&gt;
====Case-sensitivity====&lt;br /&gt;
*All keywords (for example &#039;&#039;IS&#039;&#039;, &#039;&#039;HAS&#039;&#039;) must be written in upper-case.&lt;br /&gt;
*All search expressions, on the other hand, are non–case-sensitive. For example, &#039;&#039;artist HAS NAME&#039;&#039; will find tracks whose &#039;&#039;artist&#039;&#039; field is &#039;&#039;NAME&#039;&#039;, &#039;&#039;name&#039;&#039;, &#039;&#039;Name&#039;&#039;, and all other combinations of capital and small letters.&lt;br /&gt;
====Double quotation marks====&lt;br /&gt;
*&#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; and &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039; in HAS and IS expressions should be enclosed in double quotation marks (&amp;quot;) if they include spaces. Example: &#039;&#039;&amp;quot;my favourite field or string&amp;quot; HAS my&#039;&#039;&lt;br /&gt;
*In the rare event of complex syntax in which a search expression contains keywords in a way that could introduce ambiguity, enclose the search expression (and hence its embedded &#039;keywords&#039;) within double quotation marks. For example: &#039;&#039;artist IS &amp;quot;CONTRIVED EXAMPLE AND NOT&amp;quot; AND NOT releasetype IS Demo&#039;&#039;&lt;br /&gt;
====Simplified access to metadata fields====&lt;br /&gt;
*Accessing metadata fields can be simplified: If &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; in &#039;&#039;HAS&#039;&#039;, &#039;&#039;IS&#039;&#039;, &#039;&#039;GREATER&#039;&#039;, &#039;&#039;LESS&#039;&#039;, &#039;&#039;EQUAL&#039;&#039; does not include any of the characters #, $, or %, it will be treated as a metadata field. Example: &#039;&#039;artist IS Radiohead&#039;&#039;. However, this simplified method of formatting cannot be used to access/query technical information (such as codec specifications); or component-provided information: for that, the user must use title-formatting, as detailed below.&lt;br /&gt;
&lt;br /&gt;
===Title-formatting===&lt;br /&gt;
*If &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; in &#039;&#039;HAS&#039;&#039;, &#039;&#039;IS&#039;&#039;, &#039;&#039;GREATER&#039;&#039;, &#039;&#039;LESS&#039;&#039;, or &#039;&#039;EQUAL&#039;&#039; includes at least one of the characters #, $, or %, it will be treated as a [[Foobar2000:Title Formatting Reference|title formatting]] expression. That is: the title-formatting expression will be parsed, and its end-result will take its place, before the actual query is carried out.&lt;br /&gt;
*If spaces are likely to occur in the result, the title-formatting expression should be enclosed within double quotation marks (&amp;quot;), in line with the third point listed above in General.&lt;br /&gt;
*Double quotation marks should also be included around title-formatting expressions that use parentheses, such as &#039;&#039;$info(codec)&#039;&#039;&lt;br /&gt;
*Using title formatting expressions (e.g. &#039;&#039;&amp;quot;$meta(title)&amp;quot;&#039;&#039;) instead of simple field names (e.g. &#039;&#039;title&#039;&#039;) will decrease search speed on large libraries and break multiple field value handling in the &#039;&#039;IS&#039;&#039; operator.&lt;br /&gt;
&lt;br /&gt;
==Operator summary==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Operator &lt;br /&gt;
! Syntax &lt;br /&gt;
! Comment &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;AFTER&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; AFTER &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;AND&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; AND &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;BEFORE&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; BEFORE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DURING&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; DURING &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DURING LAST&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST &amp;amp;lt;number&amp;amp;gt; SECONDS/MINUTES/HOURS/DAYS/WEEKS&#039;&#039; &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST SECOND/MINUTE/HOUR/DAY/WEEK&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;EQUAL&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; EQUAL &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;GREATER&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; GREATER &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;HAS&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; &#039;&#039;*HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;IS&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; IS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;LESS&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; LESS &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;MISSING&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; MISSING&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;NOT&#039;&#039; &lt;br /&gt;
| &#039;&#039;NOT &amp;amp;lt;expression&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;OR&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; OR &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;PRESENT&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; PRESENT&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;SINCE&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; SINCE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;SORT BY&#039;&#039; &lt;br /&gt;
| &#039;&#039;SORT BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; &#039;&#039;SORT DESCENDING BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| Must be at the end of the query. &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>72.230.134.188</name></author>
	</entry>
	<entry>
		<id>https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Query_syntax&amp;diff=24105</id>
		<title>Foobar2000:Query syntax</title>
		<link rel="alternate" type="text/html" href="https://wiki.hydrogenaudio.org/index.php?title=Foobar2000:Query_syntax&amp;diff=24105"/>
		<updated>2013-02-10T10:11:04Z</updated>

		<summary type="html">&lt;p&gt;72.230.134.188: /* Text expressions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Query syntax help=&lt;br /&gt;
&lt;br /&gt;
This page details the syntax that can be used to query for matching files in [[Foobar2000:Foobar2000|foobar2000]]. For a list of the actual fields that can be queried with this, see the [[Foobar2000:Title_Formatting_Reference|title-formatting reference]] page.&lt;br /&gt;
&lt;br /&gt;
==Conventions in this document==&lt;br /&gt;
&lt;br /&gt;
Queries are written in &#039;&#039;italics&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;rating GREATER 3&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
Query examples may contain placeholders which are enclosed in angle brackets. Their name indicates what should they need to be replaced with in a real query. If multiple placeholders of the same type occur in the same query example, a number will be appended to the name.&lt;br /&gt;
&lt;br /&gt;
Example: &#039;&#039;&amp;amp;lt;field&amp;amp;gt; GREATER &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
 &lt;br /&gt;
The following common types of placeholders are used in the rest of this document: &lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; – A reference to a tag field. This can be either a plain field name (e.g. &#039;&#039;artist&#039;&#039;) or a title formatting expression (e.g. &#039;&#039;&amp;quot;%artist%&amp;quot;&#039;&#039;). See [[Foobar2000:Query_syntax#Notes|Notes]] for details.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;number&amp;amp;gt;&#039;&#039; – An integer value.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039; – A text value that may be enclosed in double quotation marks. See [[Foobar2000:Query_syntax#Notes|Notes]] for details.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time&amp;amp;gt;&#039;&#039; – A time value or a title formatting expression that evaluates to a time value. See [[Foobar2000:Query_syntax#Time Expressions| Time Expressions]] for details.&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;expression&amp;amp;gt;&#039;&#039; – A query expression in a composed query. This has to follow the rules described under [[Foobar2000:Query_syntax#Advanced Search|Advanced Search]] below.&lt;br /&gt;
&lt;br /&gt;
==Simple search==&lt;br /&gt;
The simple search mode does not use any keywords. &lt;br /&gt;
* &#039;&#039;&amp;amp;lt;any string&amp;amp;gt;&#039;&#039; – Returns only items that have all words from specified string in their metadata or file path.&lt;br /&gt;
&lt;br /&gt;
==Advanced search==&lt;br /&gt;
The advanced search allows the construction of more complex queries. It offers several keywords to perform specific types of comparisons and to combine multiple query expressions.&lt;br /&gt;
&lt;br /&gt;
===Text expressions===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; – Returns only items that have all words from &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039; in metadata field named &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;title HAS blah&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; IS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; – Returns only items where (at least one) metadata field &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; is equal to &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;artist IS blah&#039;&#039;&lt;br /&gt;
* &#039;&#039;*HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; – Same as simple search, but can be combined using logical operators (see below).&lt;br /&gt;
* &#039;&#039;ALL&#039;&#039; - No operators. Shows all items in media library. Example: &#039;&#039;ALL&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Numeric expressions===&lt;br /&gt;
Performs integral number comparison between the value of a &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; and a &#039;&#039;&amp;amp;lt;number&amp;amp;gt;&#039;&#039;, e.g. &amp;quot;&#039;&#039;rating GREATER 3&#039;&#039;&amp;quot;. &lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; GREATER &amp;amp;lt;number&amp;amp;gt;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; LESS &amp;amp;lt;number&amp;amp;gt;&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; EQUAL &amp;amp;lt;number&amp;amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Metadata expressions===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; MISSING&#039;&#039; – Returns only items that don&amp;amp;#039;t have a metadata field named &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;genre MISSING&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;field&amp;amp;gt; PRESENT&#039;&#039; – Returns only items that have a metadata field named &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;genre PRESENT&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
===Time expressions===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; BEFORE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is before &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;%last_modified% BEFORE 2008&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; AFTER &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is after &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;%last_modified% AFTER 2008&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; SINCE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is not before &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039;. Example: &#039;&#039;%last_modified% SINCE 2007&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; DURING &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; – Returns only items where &#039;&#039;&amp;amp;lt;time1&amp;amp;gt;&#039;&#039; value is a subset of &#039;&#039;&amp;amp;lt;time2&amp;amp;gt;&#039;&#039; period. Example: &#039;&#039;%last_modified% DURING 2007&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST &amp;amp;lt;number&amp;amp;gt; &amp;amp;lt;time-unit&amp;amp;gt;&#039;&#039; – Returns items where &#039;&#039;&amp;amp;lt;time&amp;amp;gt;&#039;&#039; value is contained in the specified period. &#039;&#039;&amp;amp;lt;time-unit&amp;amp;gt;&#039;&#039; can be one of &#039;&#039;SECONDS&#039;&#039;, &#039;&#039;MINUTES&#039;&#039;, &#039;&#039;HOURS&#039;&#039;, &#039;&#039;DAYS&#039;&#039;, or &#039;&#039;WEEKS&#039;&#039;. Example: &#039;&#039;%last_modified% DURING LAST 2 WEEKS’’. If &#039;&#039;&amp;amp;lt;number&amp;amp;gt;&#039;&#039; is 1, the expression can be simplified to &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST SECOND/MINUTE/HOUR/DAY/WEEK’’.&lt;br /&gt;
Time values used in these expressions must be in one of the following formats: YYYY, YYYY-MM, YYYY-MM-DD, YYYY-MM-DD hh, YYYY-MM-DD hh:mm, YYYY-MM-DD hh:mm:ss.&lt;br /&gt;
&lt;br /&gt;
===Composed queries===&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; AND &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; – Returns only items where both expressions are true. Example: &#039;&#039;artist IS blah AND title HAS blah&#039;&#039; – You can also enclose expressions in parentheses to control the evaluation order. Example: &#039;&#039;( (artist IS blah) AND (title HAS blah) ) OR (rating GREATER 3)&#039;&#039;&lt;br /&gt;
* &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; OR &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; – Returns only items where at least one expression is true.&lt;br /&gt;
* &#039;&#039;NOT &amp;amp;lt;expression&amp;amp;gt;&#039;&#039; – Returns only items where the expression is false. Example: &#039;&#039;NOT last_played AFTER first_played&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Sorting results==&lt;br /&gt;
You can put a &#039;&#039;SORT BY&#039;&#039; operator at the end of your search expression to produce search results sorted by the specified title formatting pattern. &lt;br /&gt;
* &#039;&#039;SORT BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039;, &#039;&#039;SORT ASCENDING BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; – Sort results in ascending order.&lt;br /&gt;
* &#039;&#039;SORT DESCENDING BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; – Sort results in descending order.&lt;br /&gt;
&lt;br /&gt;
==Guidelines==&lt;br /&gt;
===General===&lt;br /&gt;
====Case-sensitivity====&lt;br /&gt;
*All keywords (for example &#039;&#039;IS&#039;&#039;, &#039;&#039;HAS&#039;&#039;) must be written in upper-case.&lt;br /&gt;
*All search expressions, on the other hand, are non–case-sensitive. For example, &#039;&#039;artist HAS NAME&#039;&#039; will find tracks whose &#039;&#039;artist&#039;&#039; field is &#039;&#039;NAME&#039;&#039;, &#039;&#039;name&#039;&#039;, &#039;&#039;Name&#039;&#039;, and all other combinations of capital and small letters.&lt;br /&gt;
====Double quotation marks====&lt;br /&gt;
*&#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; and &#039;&#039;&amp;amp;lt;string&amp;amp;gt;&#039;&#039; in HAS and IS expressions should be enclosed in double quotation marks (&amp;quot;) if they include spaces. Example: &#039;&#039;&amp;quot;my favourite field or string&amp;quot; HAS my&#039;&#039;&lt;br /&gt;
*In the rare event of complex syntax in which a search expression contains keywords in a way that could introduce ambiguity, enclose the search expression (and hence its embedded &#039;keywords&#039;) within double quotation marks. For example: &#039;&#039;artist IS &amp;quot;CONTRIVED EXAMPLE AND NOT&amp;quot; AND NOT releasetype IS Demo&#039;&#039;&lt;br /&gt;
====Simplified access to metadata fields====&lt;br /&gt;
*Accessing metadata fields can be simplified: If &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; in &#039;&#039;HAS&#039;&#039;, &#039;&#039;IS&#039;&#039;, &#039;&#039;GREATER&#039;&#039;, &#039;&#039;LESS&#039;&#039;, &#039;&#039;EQUAL&#039;&#039; does not include any of the characters #, $, or %, it will be treated as a metadata field. Example: &#039;&#039;artist IS Radiohead&#039;&#039;. However, this simplified method of formatting cannot be used to access/query technical information (such as codec specifications); or component-provided information: for that, the user must use title-formatting, as detailed below.&lt;br /&gt;
&lt;br /&gt;
===Title-formatting===&lt;br /&gt;
*If &#039;&#039;&amp;amp;lt;field&amp;amp;gt;&#039;&#039; in &#039;&#039;HAS&#039;&#039;, &#039;&#039;IS&#039;&#039;, &#039;&#039;GREATER&#039;&#039;, &#039;&#039;LESS&#039;&#039;, or &#039;&#039;EQUAL&#039;&#039; includes at least one of the characters #, $, or %, it will be treated as a [[Foobar2000:Title Formatting Reference|title formatting]] expression. That is: the title-formatting expression will be parsed, and its end-result will take its place, before the actual query is carried out.&lt;br /&gt;
*If spaces are likely to occur in the result, the title-formatting expression should be enclosed within double quotation marks (&amp;quot;), in line with the third point listed above in General.&lt;br /&gt;
*Double quotation marks should also be included around title-formatting expressions that use parentheses, such as &#039;&#039;$info(codec)&#039;&#039;&lt;br /&gt;
*Using title formatting expressions (e.g. &#039;&#039;&amp;quot;$meta(title)&amp;quot;&#039;&#039;) instead of simple field names (e.g. &#039;&#039;title&#039;&#039;) will decrease search speed on large libraries and break multiple field value handling in the &#039;&#039;IS&#039;&#039; operator.&lt;br /&gt;
&lt;br /&gt;
==Operator summary==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Operator &lt;br /&gt;
! Syntax &lt;br /&gt;
! Comment &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;AFTER&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; AFTER &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;AND&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; AND &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;BEFORE&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; BEFORE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DURING&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; DURING &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;DURING LAST&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST &amp;amp;lt;number&amp;amp;gt; SECONDS/MINUTES/HOURS/DAYS/WEEKS&#039;&#039; &#039;&#039;&amp;amp;lt;time&amp;amp;gt; DURING LAST SECOND/MINUTE/HOUR/DAY/WEEK&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;EQUAL&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; EQUAL &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;GREATER&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; GREATER &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;HAS&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; &#039;&#039;*HAS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;IS&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; IS &amp;amp;lt;string&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;LESS&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; LESS &amp;amp;lt;number&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;MISSING&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; MISSING&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;NOT&#039;&#039; &lt;br /&gt;
| &#039;&#039;NOT &amp;amp;lt;expression&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;OR&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;expression1&amp;amp;gt; OR &amp;amp;lt;expression2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;PRESENT&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;field&amp;amp;gt; PRESENT&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;SINCE&#039;&#039; &lt;br /&gt;
| &#039;&#039;&amp;amp;lt;time1&amp;amp;gt; SINCE &amp;amp;lt;time2&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| &#039;&#039;SORT BY&#039;&#039; &lt;br /&gt;
| &#039;&#039;SORT BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; &#039;&#039;SORT DESCENDING BY &amp;amp;lt;sort-pattern&amp;amp;gt;&#039;&#039; &lt;br /&gt;
| Must be at the end of the query. &lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>72.230.134.188</name></author>
	</entry>
</feed>