Solr supports multiple query syntaxes through its query parser plugin framework. For documentation on the full list of available parser types, see the all subclasses of QParserPlugin in the javadoc.

Specifying a Query Parser

Users can specify the type of a query in most places that accept a query string using LocalParams syntax. For example, the following query string specifies a lucene/solr query with a default operator of "AND" and a default field of "text": q={!lucene q.op=AND df=text}myfield:foo +bar -baz

In standard Solr search handlers, the default type of the main query only may be specified via the defType parameter. The default type of all other query parameters will remain "lucene".

q={!func}popularity is thus equivalent to defType=func&q=popularity in the standard Solr search handler.

Default QParserPlugin: LuceneQParserPlugin

The standard Solr Query Parser syntax is a superset of the Lucene Query Parser syntax.

Differences From Lucene Query Parser

Differences in the Solr Query Parser include

Although not technically a Syntax difference, please note that if you use the Solr "DateField" type, any queries on those fields (typically range queries) should use either the Complete ISO 8601 Date syntax that field supports, or the DateMath Syntax to get relative dates. Examples:

Dismax Query Parser

The dismax query parser provides query time field level boosting granularity, with less special syntax. Dismax generally makes the best first choice query parser for user facing Solr applications. The dismax handler parameters are described in detail here: DisMaxRequestHandler.

Other built-in useful query parsers

See also SolrPlugins for information on writing your own query parser.

NOTE: URL Escaping Special Characters

Please note that many characters in the Solr Query Syntax (most notable the plus sign: "+") are special characters in URLs, so when constructing request URLs manually, you must properly URL-Encode these characters.

                                     q=  +popularity:[10   TO   *]     +section:0
   http://localhost:8983/solr/select?q=%2Bpopularity:[10%20TO%20*]%20%2Bsection:0

For more information

SolrQuerySyntax (last edited 2009-11-19 15:12:41 by GrantIngersoll)