Elasticsearch 고급 검색
GitLab에서 Elasticsearch를 사용하여 고급 검색을 구성하고 관리하는 방법을 설명합니다.
이 페이지에서는 고급 검색을 활성화하는 방법을 설명합니다. 활성화하면 고급 검색은 더 빠른 검색 응답 시간과 향상된 검색 기능 을 제공합니다. 고급 검색을 활성화하려면 다음 작업이 필요합니다. Elasticsearch 또는 AWS OpenSearch 클러스터를 설치합니다 . 고급 검색을 활성화합니다 . Note 고급 검색은 모든 프로젝트를 동일한 Elasticsearch 인덱스에 저장합니다. 다만 비공개 프로젝트는 접근 권한이 있는 사용자에게만 검색 결과에 표시됩니다. Elasticsearch 용어집 # 이 용어집에서는 Elasticsearch와 관련된 용어를 정의합니다. Lucene : Java로 작성된 전문 검색 라이브러리입니다. 니어 리얼 타임(NRT) : 문서를 인덱싱한 시점부터 해당 문서를 검색할 수 있게 되는 시점까지의 짧은 지연을 의미합니다. 클러스터 : 모든 데이터를 보관하면서 인덱싱 및 검색 기능을 제공하기 위해 함께 동작하는 하나 이상의 노드 집합입니다. 노드 : 클러스터의 일부로 동작하는 단일 서버입니다. 인덱스 : 어느 정도 유사한 특성을 가진 문서의 집합입니다. 문서 : 인덱싱할 수 있는 정보의 기본 단위입니다. 샤드 : 인덱스를 나눈 독립적인 하위 단위로, 그 자체로 완전한 기능을 갖춥니다. 각 샤드는 실제로 하나의 Lucene 인덱스입니다. 레플리카 : 인덱스를 복제하는 장애 조치 메커니즘입니다. Elasticsearch 또는 AWS OpenSearch 클러스터 설치 # Elasticsearch와 AWS OpenSearch는 Linux 패키지에 포함되어 있지 않습니다. 검색 클러스터를 직접 설치하거나 다음과 같은 클라우드 호스팅 서비스를 사용할 수 있습니다. Elasticsearch Service (Amazon Web Services, Google Cloud Platform, Microsoft Azure에서 사용 가능) Amazon OpenSearch Service 검색 클러스터는 별도의 서버에 설치해야 합니다. GitLab과 같은 서버에서 검색 클러스터를 실행하면 성능 문제가 발생할 수 있습니다. 노드가 하나인 검색 클러스터에서는 프라이머리 샤드만 할당되므로 클러스터 상태가 항상 yellow 입니다. 클러스터는 프라이머리 샤드와 같은 노드에 레플리카 샤드를 할당할 수 없습니다. Note 새 Elasticsearch 클러스터를 프로덕션에서 사용하기 전에 중요 Elasticsearch 구성 을 참고합니다. 버전 호환성 # Elasticsearch # Warning Elasticsearch 7.x 지원은 GitLab 18.10에서 더 이상 사용되지 않으며 20.0에서 제거될 예정입니다. 고급 검색은 다음 버전의 Elasticsearch와 호환됩니다. GitLab 버전 Elasticsearch 버전 19.1 이상 8.x 및 9.x 15.0 ~ 19.0 7.x 및 8.x 14.0 ~ 14.10 6.8 ~ 7.x GitLab.com은 Elasticsearch 9.x를 사용합니다. 성능과 최신 기능, 상위 호환성을 확보하