-
GitLab Bot authoredGitLab Bot authored
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:
{{< 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:
- Elasticsearch Service (available on Amazon Web Services, Google Cloud Platform, and Microsoft Azure)
- Amazon OpenSearch Service
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.