고급 검색 개발 팁
Elasticsearch 클러스터 관리, 인덱스 생성 및 데이터 인덱싱, 마이그레이션 테스트, 쿼리 변경 분석 방법을 설명합니다.
Kibana # Kibana를 사용하여 Elasticsearch 클러스터와 상호작용할 수 있습니다. 다운로드 안내 를 참조하세요. 인덱스 상태 확인 # bundle exec rake gitlab:elastic:info 를 실행하여 클러스터의 상태와 정보를 확인할 수 있습니다. 처음부터 모든 인덱스를 생성하고 로컬 데이터로 채우기 # 옵션 1: Rake task # bundle exec rake gitlab:elastic:index 를 실행하면 Search::Elastic::TriggerIndexingWorker 가 비동기로 실행됩니다. Elastic::ProcessInitialBookkeepingService.new.execute 를 [0, 0] 이 표시될 때까지 반복 실행합니다. [0, 0] 은 큐에 더 이상 ref가 없음을 의미합니다. 옵션 2: 수동 # Search::Elastic::TriggerIndexingWorker 의 단계를 수동으로 실행합니다. Sidekiq이 job을 올바르게 가져오지 못하는 경우가 있어 Sidekiq을 재시작해야 할 수도 있습니다. Rails 콘솔에서 단계를 실행하려면 다음을 사용하세요: task_executor_service = Search::RakeTaskExecutorService.new(logger: ::Gitlab::Elasticsearch::Logger.build) task_executor_service.execute(:recreate_index) task_executor_service.execute(:clear_index_status) task_executor_service.execute(:clear_reindex_status) task_executor_service.execute(:resume_indexing) task_executor_service.execute(:index_namespaces) task_executor_service.execute(:index_projects) task_executor_service.execute(:index_snippets) task_executor_service.execute(:index_users) Elastic::ProcessInitialBookkeepingService.new.execute 를 [0, 0] 이 표시될 때까지 반복 실행합니다. [0, 0] 은 큐에 더 이상 ref가 없음을 의미합니다. 옵션 3: 재인덱싱 task # 먼저 기존 인덱스를 삭제한 다음, 타깃으로 지정할 인덱스에 대한 ReindexingTask 를 생성합니다. 이렇게 하면 현재 구성을 기반으로 새 인덱스가 생성되고 데이터가 복사됩니다. Search::Elastic::ReindexingTask.create!(targets: %w[MergeRequest]) ElasticClusterReindexingCronWorker.new.perform 를 실행하고 다음이 success 가 될 때까지 반복합니다. Search::Elastic::ReindexingTask.last.state