Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

Basic Queries in Elasticsearch

Introduction

Elasticsearch is a powerful search engine that allows you to store, search, and analyze big volumes of data quickly and in near real-time. In this tutorial, we will cover the essential basic queries that you can perform in Elasticsearch to retrieve data.

1. Match Query

The match query is the standard query for performing a full-text search. It analyzes the query string before performing the search.

Example:

{
  "query": {
    "match": {
      "field_name": "search term"
    }
  }
}

In this example, Elasticsearch will search for documents where the field_name contains the words "search term".

2. Term Query

The term query is used to search for exact values. Unlike the match query, the term query does not analyze the search string.

Example:

{
  "query": {
    "term": {
      "field_name": "exact_value"
    }
  }
}

In this example, Elasticsearch will search for documents where the field_name exactly matches "exact_value".

3. Range Query

The range query is used to find documents that have fields within a certain range. This is particularly useful for numeric fields and dates.

Example:

{
  "query": {
    "range": {
      "age": {
        "gte": 10,
        "lte": 20
      }
    }
  }
}

In this example, Elasticsearch will search for documents where the age field is between 10 and 20, inclusive.

4. Bool Query

The bool query combines multiple query clauses using boolean logic. It can be used to perform complex searches by combining multiple queries with must, should, and must_not clauses.

Example:

{
  "query": {
    "bool": {
      "must": [
        { "match": { "field1": "value1" } }
      ],
      "should": [
        { "match": { "field2": "value2" } }
      ],
      "must_not": [
        { "term": { "field3": "value3" } }
      ]
    }
  }
}

In this example, Elasticsearch will search for documents that must match field1 with "value1", should match field2 with "value2", and must not match field3 with "value3".

5. Wildcard Query

The wildcard query is used to search for documents that contain terms matching a wildcard pattern.

Example:

{
  "query": {
    "wildcard": {
      "field_name": "sea*ch"
    }
  }
}

In this example, Elasticsearch will search for documents where the field_name matches the wildcard pattern "sea*ch".

Conclusion

These are some of the basic queries you can perform in Elasticsearch to retrieve data. Understanding these queries will help you effectively search and analyze your data. As you become more familiar with Elasticsearch, you can explore more advanced queries and search functionalities.