3.4. The query language

The query language processor is activated on the simple search entry when the search mode selector is set to Query Language.

The language is roughly based on the Xesam user search language specification.

Here follows a sample request that we are going to explain:

          author:"john doe" Beatles OR Lennon Live OR Unplugged -potatoes
     

This would search for all documents with John Doe appearing as a phrase in the author field (exactly what this is would depend on the document type, ie: the From: header, for an email message), and containing either beatles or lennon and either live or unplugged but not potatoes (in any part of the document).

An element is composed of an optional field specification, and a value, separated by a colon. Exemple: Beatles, author:balzac, dc:title:grandet

The colon, if present, means "contains". Xesam defines other relations, which are not supported for now.

All elements in the search entry are normally combined with an implicit AND. It is possible to specify that elements be OR'ed instead, as in Beatles OR Lennon. The OR must be entered literally (capitals), and it has priority over the AND associations: word1 word2 OR word3 means word1 AND (word2 OR word3) not (word1 AND word2) OR word3. Do not enter explicit parenthesis, they are not supported for now.

An element preceded by a - specifies a term that should not appear. Pure negative queries are forbidden.

As usual, words inside quotes define a phrase (the order of words is significant), so that title:"prejudice pride" is not the same as title:prejudice title:pride, and is unlikely to find a result.

Recoll currently manages the following default fields:

The field syntax also supports a few field-like, but special, criteria:

The document filters used while indexing have the possibility to create other fields with arbitrary names, and aliases may be defined in the configuration, so that the exact field search possibilities may be different for you if someone took care of the customisation.

The query language is currently the only way to use the Recoll field search capability.

Words inside phrases and capitalized words are not stem-expanded. Wildcards may be used anywhere inside a term. Specifying a wild-card on the left of a term can produce a very slow search (or even an incorrect one if the expansion is truncated because of excessive size).

You can use the show query link at the top of the result list to check the exact query which was finally executed by Xapian.

Most Xesam phrase modifiers are unsupported, except for l (small ell) to disable stemming, and p to turn a phrase into a NEAR (unordered) search. Exemple: "prejudice pride"p