Skip to content

Search Query Syntax

Toby Crawley edited this page Feb 1, 2023 · 10 revisions

We can see a search query as a bunch of terms and operators, let's explore several ways to use our Lucene search engine:

Available fields

The following fields (with examples) are searchable using the field-name:search-term syntax (without the field prefix, all fields are searched):

As a convenience, the search API will expand foo/bar to ((group-id:foo AND artifact-id:bar) OR "foo/bar". If you want to match foo/bar exactly, provide it as a quoted phrase ("foo/bar").

Terms

There are 2 types of terms:

  • A term is a single word such as oauth or sql
  • A phrase is just a bunch of words grouped by quotes, like "sql builder"

Boolean operators

Terms can be combined with operators in order to build more complex queries (note that these have to be uppercase):

  • AND matches both terms, i.e. google AND oauth
  • NOT excludes the term after NOT, i.e. auth NOT SNAPSHOT
  • OR matches if either of the terms is present, i.e. ldap OR saml

Grouping

Parentheses can be used to form sub queries, i.e. (ldap OR saml) AND ADFS

Wildcards

  • ? single character wildcard search for terms that matches with a single character replaced, i.e. oauth?
  • * multiple character wildcard searches for 0 or more characters, i.e. oauth*

Do not use ? or * as the first character of a search

See also: Lucene's own Query Syntax Tutorial.