# Search syntax

Searches in lesana use the human readable query string format defined by xapian.

The simplest search is just a list of terms: e.g. searching for `thing object` will find entries where either `thing` or `object` is present in one of the fields with `free` indexing.

It is also possible to specify that a term must be in one specific field: the syntax for this is the name of the field follwed by `:` and the term, e.g. `name:object` will search for entries with the term `object` in the `name` field.

Search queries can of course include the usual logical operators `AND`, `OR` and `NOT`.

More modifiers are available; see the Query Parser documentation from xapian for details.

## Search templates and `search_aliases`

In some contexts, search queries are rendered as jinja2 templates with the contents of the `search_aliases` property as set in `settings.yaml`.

The values of those search aliases should be valid search snippets with the syntax documented above; it’s usually a good idea to wrap them in parenthesis, so that they are easier to use in complex queries; e.g.:

    my_alias: '(name:object OR name:thing)'

can correctly be used in a query like:

    {{ my_alias }} AND description:shiny