커넥터 SDK 및 Cloud Search API는 Cloud Search 색인 생성 큐 생성을 지원합니다. 이러한 대기열을 사용하여 다음 작업을 할 수 있습니다.
- 색인을 동기화 상태로 유지하기 위해 문서별 상태 (상태, 해시 등)를 유지합니다.
- 순회 중에 검색된 대로 색인을 생성할 항목의 목록을 유지합니다.
- 상태에 따라 항목의 우선순위를 지정합니다.
- 체크포인트, 변경 토큰과 같은 상태 정보를 유지합니다.
대기열은 색인이 생성된 항목 (예: 'default')를 사용합니다.
상태 및 우선순위
문서의 우선순위는 ItemStatus 코드에 따라 달라집니다. 가능한 코드는 우선순위 (높은 순서에서 낮은 순서)대로 다음과 같습니다.
ERROR: 항목에 비동기 오류가 발생하여 다시 색인을 생성해야 합니다.MODIFIED: 이전에 색인이 생성되었지만 저장소에서 변경된 항목입니다.NEW_ITEM: 항목이 아직 색인되지 않았습니다.ACCEPTED: 이전에 색인이 생성되었으며 변경되지 않았습니다.
상태가 동일한 항목의 경우 큐에 가장 오래 있었던 항목에 더 높은 우선순위가 부여됩니다.
새 항목 또는 변경된 항목의 색인 생성
그림 1은 색인 생성 대기열을 사용하여 신규 또는 변경된 항목의 색인을 생성하는 단계를 보여줍니다. 이 단계는 REST API 호출을 반영합니다. SDK에 상응하는 내용은 큐 작업 (커넥터 SDK)를 참고하세요.

- 콘텐츠 커넥터는
items.push를 사용하여 메타데이터와 해시를 대기열로 푸시합니다.- 커넥터에 푸시
type또는contentHash이 포함된 경우 Cloud Search에서 상태를 결정합니다. - 알 수 없는 항목에는
NEW_ITEM상태가 부여됩니다. - 해시가 일치하는 기존 항목은
ACCEPTED로 유지됩니다. - 해시가 다른 기존 항목은
MODIFIED가 됩니다.
- 커넥터에 푸시
- 커넥터는
items.poll를 사용하여 색인을 생성할 항목을 결정합니다. Cloud Search는 우선순위에 따라 항목을 반환합니다. - 커넥터는 저장소에서 항목을 가져오고 색인 API 요청을 빌드합니다.
- 커넥터는
items.index를 사용하여 항목의 색인을 생성합니다. 항목은 처리가 완료되면ACCEPTED상태가 됩니다.
항목 삭제
전체 순회 전략은 두 개의 대기열을 사용하여 항목의 색인을 생성하고 삭제를 감지합니다. 그림 2는 이 전략의 두 번째 순회를 보여줍니다.
- 초기 순회에서 커넥터는 항목을
NEW_ITEM로 '대기열 A'에 푸시합니다. 각 항목에 'A' 라벨이 지정됩니다. - 커넥터가 큐 A를 폴링하고 항목의 색인을 생성합니다.
- 두 번째 전체 순회에서 커넥터는 항목을 '대기열 B'로 푸시합니다.
- 알 수 없는 항목에는 라벨 'B'와 상태
NEW_ITEM이(가) 지정됩니다. - 해시가 일치하는 기존 항목은 라벨이 'B'로 변경되고
ACCEPTED상태로 유지됩니다. - 해시가 다른 기존 항목은 라벨이 'B'로 변경되고
MODIFIED가 됩니다.
- 알 수 없는 항목에는 라벨 'B'와 상태
- 커넥터가 대기열 B를 폴링하고 항목의 색인을 생성합니다.
- 마지막으로 커넥터는 대기열 A에서
deleteQueueItems를 호출합니다. 이렇게 하면 라벨이 'A'인 항목이 모두 삭제됩니다. - 후속 순회에서는 두 대기열의 역할을 바꿉니다.
큐 작업(커넥터 SDK)
pushItems 빌더를 사용하여 항목을 푸시합니다. SDK는 Repository 클래스의 getDoc 메서드를 사용하여 우선순위에 따라 큐에서 항목을 자동으로 가져옵니다.
큐 작업(REST API)
- 푸시하려면
Items.push를 사용합니다. - 폴링하려면
Items.poll을 사용합니다.
Items.index를 사용하여 색인 생성 중에 항목을 푸시할 수도 있습니다. 이러한 항목에는 ACCEPTED 상태가 자동으로 부여됩니다.
Items.push
이 메서드는 큐에 ID를 추가합니다. type이 결과를 결정합니다. 새 ID를 푸시하면 NEW_ITEM 상태의 항목이 추가됩니다.
선택사항인 페이로드는 폴링 중에 반환됩니다.
폴링된 항목은 예약되며 다른 폴링 호출로 반환할 수 없습니다. type이 NOT_MODIFIED, REPOSITORY_ERROR 또는 REQUEUE로 설정된 Items.push을 사용하면 항목의 예약이 취소됩니다.
해시를 사용한 Items.push
푸시 요청에 메타데이터 또는 콘텐츠 해시를 지정합니다.
Cloud Search는 이를 저장된 값과 비교합니다. 일치하지 않으면 항목이 MODIFIED이 됩니다. 존재하지 않는 불일치 ID는 NEW_ITEM이 됩니다.
Items.poll
이 메서드는 우선순위가 높은 항목을 가져옵니다. 반환된 각 항목은 시간이 초과되거나, 색인이 다시 생성되거나, Items.push를 사용하여 예약이 취소될 때까지 예약됩니다.