문서 메뉴
문서 홈
/
MongoDB 아틀라스
/ /

Atlas Search 오류 문제 해결

이 페이지의 내용

  • 초기 동기화 진행 중
  • mongot 프로세스가 설치되지 않았거나 실행 중이지 않음
  • 빈 결과 집합
  • PlanExecutor 오류
  • Failed to Execute search Command 오류

Atlas Search는 다음 시나리오에서 초기 동기화 프로세스를 시작합니다.

  • 새 클러스터를 만들거나 클러스터에서 특정 업그레이드를 수행할 때 초기 동기화 프로세스가 발생합니다.

  • 기존 Atlas Search 인덱스가 있는 collection에 샤드를 추가하는 경우, 해당 인덱스에 대해 추가된 샤드에서 초기 동기화가 발생합니다.

  • 이미 Atlas Search 인덱스가 있는 collection을 샤드하는 경우, collection이 존재하기 시작하는 샤드에서 초기 동기화가 수행됩니다.

초기 동기화 프로세스에는 다음 단계가 포함됩니다.

  1. mongod 이 초기 동기화를 수행합니다.

  2. mongot 가 초기 동기화를 수행하여 검색 인덱스를 다시 작성합니다.

검색 인덱스가 다시 작성되는 동안 기존 인덱싱된 필드에 대해 $search 쿼리를 계속 수행할 수 있습니다. 그러나 새 필드 또는 최근에 만든 노드에 대해 $search 쿼리를 실행하는 경우 Atlas Search에서 오류를 반환할 수 있습니다. 초기 동기화가 완료되고 mongot 가 인덱스를 다시 작성하면 쿼리를 다시 시도합니다. 다음 단계에 따라 mongot 초기 동기화의 상태를 확인할 수 있습니다.

1
  1. 이미 표시되어 있지 않은 경우 탐색 모음의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.

  2. 이미 표시되어 있지 않은 경우 Projects 탐색 모음의 프로젝트 메뉴에서 원하는 프로젝트를 선택합니다.

  3. Clusters 페이지가 아직 표시되지 않은 경우 사이드바에서 Database를 클릭합니다.

2

사이드바, Data Explorer 또는 클러스터 세부 정보 페이지에서 Atlas Search 페이지로 이동할 수 있습니다.

3
  1. 인덱스의 Status 열에서 View Status Details 을 클릭합니다.

  2. 노드의 인덱스 상태를 확인합니다. mongot 초기 동기화 중 상태는 INITIAL SYNC 입니다. mongot 가 인덱스 재구축을 완료하면 상태는 ACTIVE 가 됩니다.

Atlas Search mongot 프로세스가 설치되어 있지 않거나 실행 중이 아닌 상태에서 $search 쿼리를 실행하면 다음 오류가 반환됩니다.

MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.

mongot 프로세스는 첫 번째 Atlas Search 검색 인덱스가 정의된 경우에만 설치됩니다. Atlas cluster에 Atlas Search 검색 인덱스가 없는 경우 Atlas Search 검색 인덱스를 하나 이상 생성하여 이 오류를 해결합니다.

다음도 참조하세요.

  • Atlas Search 인덱스 구문 검토

  • Atlas Search 인덱스 만들기

mongot 오류를 반환하지 않지만 $search 쿼리가 다음과 같은 경우 빈 결과 집합을 반환합니다.

  • 존재하지 않는 인덱스를 참고합니다. 쿼리에서 이름으로 인덱스를 지정하지 않으면 Atlas Search는 기본적으로 default 라는 이름의 인덱스를 사용합니다. default (이)라는 인덱스가 없거나 지정한 인덱스가 존재하지 않는 경우 Atlas Search는 오류를 반환하지 않고 빈 결과 집합을 반환합니다. index 옵션을 사용하여 이름으로 유효한 인덱스를 지정할 수 있습니다. 자세한 내용은 Atlas Search 집계 파이프라인 단계 옵션을 참조하세요.

  • 인덱싱되지 않은 필드를 지정합니다. 인덱싱되지 않은 필드에 대해 쿼리를 실행하는 경우 Atlas Search는 오류를 반환하지 않고 빈 결과 집합을 반환합니다. 인덱싱된 필드만 path 매개변수의 값으로 지정해야 합니다. collection에 대한 인덱스 정의에서 동적 매핑 을 활성화하여 collection의 모든 동적으로 인덱싱 가능한 필드 가 자동으로 인덱싱되도록 할 수 있습니다. 자세한 내용은 동적 매핑을 참조하세요.

  • string 유형으로 인덱싱되지 않은 필드 경로에 text 연산자를 사용합니다. 필드가 string 이외의 Atlas Search 필드 유형(예: stringFacet 또는 autocomplete)으로 인덱싱되는 경우 Atlas Search는 오류를 반환하지 않고 빈 결과 집합을 반환합니다. 텍스트 연산자를 사용하여 필드를 쿼리하려면 string BSON 데이터 유형 값을 문자열 유형으로 사용하여 필드를 인덱싱 해야 합니다 .

mongot $search 쿼리가 다음과 같은 경우 PlanExecutor 오류를 반환합니다.

  • 잘못된 데이터 유형으로 인덱싱되는 필드를 지정합니다. 이 경우 쿼리를 실행하면 Atlas Search는 잘못 인덱싱된 필드와 올바른 데이터 유형을 식별하는 오류 메시지를 반환합니다. 예를 들면 다음과 같습니다.

    PlanExecutor error during aggregation :: caused by :: Cannot facet on field "genres" because
    it was not indexed as a "stringFacet" field.

    예를 들어 string, number 또는 date 필드에 대해 패싯 쿼리를 실행하려면 stringFacet, numberFacetdateFacet 과 같은 해당 Atlas Search 필드 유형을 사용하여 필드에 대한 인덱스를 만듭니다. . 자세한 내용은 지원되는 데이터 유형과 지원되지 않는 데이터 유형을 참조하세요.

mongotmongod 와 함께 실행하도록 배포한 경우(즉, 워크로드 격리를 위한 검색 노드를 구성하지 않은 경우) mongot 프로세스가 종료되면(예: 다음 이벤트 중 하나) mongot 에서 이 오류를 반환할 수 있습니다.

  • cluster 업스케일링

  • 노드 페일오버

  • mongot 업그레이드

전용 검색 노드에 mongot 를 배포한 경우 mongod 는 각 검색 노드를 인식하는 프록시를 사용하므로 mongodmongot 가 활성화된 정상 노드로만 검색 쿼리를 라우팅합니다.

← 타이밍 설명