Skip to content
Snippets Groups Projects
elasticsearch.md 72.04 KiB
stage: Foundations
group: Global Search
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments
title: Elasticsearch

{{< details >}}

  • Tier: Premium, Ultimate
  • Offering: GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

This page describes how to enable advanced search. When enabled, advanced search provides faster search response times and improved search features.

To enable advanced search, you must:

  1. Install an Elasticsearch or AWS OpenSearch cluster.
  2. Enable advanced search.

{{< alert type="note" >}}

Advanced search stores all projects in the same Elasticsearch indices. However, private projects appear in search results only to users who have access.

{{< /alert >}}

Elasticsearch glossary

This glossary provides definitions for terms related to Elasticsearch.

  • Lucene: A full-text search library written in Java.
  • Near real time (NRT): Refers to the slight latency from the time to index a document to the time when it becomes searchable.
  • Cluster: A collection of one or more nodes that work together to hold all the data, providing indexing and search capabilities.
  • Node: A single server that works as part of a cluster.
  • Index: A collection of documents that have somewhat similar characteristics.
  • Document: A basic unit of information that can be indexed.
  • Shards: Fully-functional and independent subdivisions of indices. Each shard is actually a Lucene index.
  • Replicas: Failover mechanisms that duplicate indices.

Install an Elasticsearch or AWS OpenSearch cluster

Elasticsearch and AWS OpenSearch are not included in the Linux package. You can install a search cluster yourself or use a cloud-hosted offering such as:

You should install the search cluster on a separate server. Running the search cluster on the same server as GitLab might lead to performance issues.

For a search cluster with a single node, the cluster status is always yellow because the primary shard is allocated. The cluster cannot assign replica shards to the same node as primary shards.

{{< alert type="note" >}}

Before you use a new Elasticsearch cluster in production, see important Elasticsearch configuration.