Skip to main content

Full text queries

Full text queries allow you to find results based on analyzed text fields.1 For example, by a word or phrase within a longer description.

Unlike term-level queries, the search terms you use in a full-text query are analyzed. This means what you search for is tokenized first (broken up into separate words), singular / plural variants determined, synonyms applied, and so on.

Details

Below are the various kinds of full text queries. These are sorted with the most commonly used at the top, and cover their usual usage. Each one is linked to Elasticsearch's own documentation to provide greater details. (In most cases there are many more options for each kind of query than what's documented here.)

Match

Match queries return results where the asset's value for that attribute matches some part of what you're searching.

Build the query and request
IndexSearchRequest index = client.assets.select() // (1)
.where(Asset.NAME.match("tmp")) // (1)
.toRequest();
  1. You can search across all assets using the select() method of the assets member on any client.

  2. Chain a where() onto the select, with the static constant representing a field of the type you want to search to start a query, in this case the NAME of an Asset. Adding the match() predicate creates a match query.

    Equivalent query through Elastic
    Query byMatch =  MatchQuery.of(m -> m
    .field("name")
    .query("tmp")
    ._toQuery();

Match phrase

Unlike a regular match query, which performs a full-text search and may return results with individual words appearing in any order, a match_phrase query ensures that the terms appear in the exact order specified.

For example, to search for assets where the description field contains the exact phrase "data pipeline":

Coming soon

Footnotes

  1. This page is a summary of the details in the Elasticsearch Guide's Full text queries

Was this page helpful?