커넥터 SDK 및 Google Cloud Search API를 사용하면 Cloud Search 색인 생성 큐는 다음 작업을 수행하는 데 사용됩니다.
색인을 저장소와 동기화 상태로 유지하는 데 사용할 수 있는 문서별 상태(상태, 해시 값 등) 유지관리
순회 프로세스 중에 검색된 대로 색인을 생성할 항목의 목록 유지관리
항목 상태에 따라 큐 항목의 우선순위 지정
체크포인트, 변경 토큰 등 효율적인 통합을 위한 추가 상태 정보 유지관리
큐는 '기본값'과 같이 색인이 생성된 항목에 할당된 라벨입니다. 대상 기본 대기열 또는 'B' 확인할 수 있습니다
상태 및 우선순위
큐에서 문서의 우선순위는
ItemStatus
생성합니다. 가능한 작업은 다음과 같습니다.
ItemStatus
우선순위 (처리되는 순서)대로 코드를 작성합니다.
ERROR
- 색인 생성 프로세스 중에 비동기 오류가 발생하여 다시 색인을 생성해야 하는 항목MODIFIED
- 이전에 색인이 생성되었고 마지막 색인이 생성된 후로 저장소에서 수정된 적이 있는 항목NEW_ITEM
- 색인이 생성되지 않은 항목ACCEPTED
- 이전에 색인이 생성되었으며 다음 기간 동안 변경되지 않은 문서 저장소가 생성됩니다.
큐에 있는 두 항목의 상태가 같을 때 가장 긴 시간 동안 큐에 있었던 항목에 더 높은 우선순위가 부여됩니다.
색인 생성 큐를 사용하여 새 항목 또는 변경된 항목의 색인 생성 개요
그림 1은 색인 생성을 사용하여 새 항목 또는 변경된 항목의 색인을 생성하는 단계를 보여줍니다. 할 수 있습니다. 다음 단계는 REST API 호출을 보여줍니다. 동등한 SDK 호출의 경우 다음을 참고하세요. 큐 작업 (커넥터 SDK).
![Google Cloud Search 색인 생성 개요](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/architecture-queues-add.png?authuser=5&hl=ko)
콘텐츠 커넥터는
items.push
색인 생성 큐로 항목 (메타데이터 및 해시)을 푸시하여 항목의 상태 (MODIFIED
,NEW_ITEM
,DELETED
)입니다. 구체적인 내용은 다음과 같습니다.- 푸시할 때 커넥터는 푸시를 명시적으로 포함합니다.
type
또는contentHash
. - 커넥터에
type
가 포함되지 않으면 Cloud Search는 자동으로contentHash
를 사용하여 항목의 상태를 확인합니다. - 알 수 없는 상품인 경우 상품 상태가
NEW_ITEM
로 설정됩니다. - 상품이 존재하고 해시 값이 일치하면 상태가
ACCEPTED
로 유지됩니다. - 상품이 존재하고 해시가 다르면 상태는
MODIFIED
이 됩니다.
항목 상태가 설정되는 방법에 대한 자세한 내용은 GitHub 저장소 순회 샘플 코드 Cloud Search 시작하기 튜토리얼
일반적으로 푸시는 콘텐츠 순회 또는 변경 감지와 관련되어 있습니다. 커넥터가 있습니다.
- 푸시할 때 커넥터는 푸시를 명시적으로 포함합니다.
콘텐츠 커넥터는
items.poll
큐를 폴링하여 색인을 생성할 항목을 결정합니다. Cloud Search는 색인 생성이 가장 필요한 항목을 상태 코드로 먼저 정렬한 다음 있습니다커넥터가 저장소에서 이러한 항목을 검색하고 색인을 빌드합니다. API 요청
커넥터는
items.index
사용하여 항목의 색인을 생성합니다. 항목은 Cloud Search 다음에ACCEPTED
상태로 전환됩니다. 항목 처리가 완료됩니다.
커넥터는 또한 항목이 저장소에 더 이상 존재하지 않는 경우 항목을 삭제할 수 있습니다. 수정되지 않았거나 소스 저장소 오류입니다. 항목 삭제에 대한 자세한 내용은 섹션으로 이동합니다.
색인 생성 큐를 사용하여 항목 삭제 개요
이 전체 순회 전략 두 개의 큐 프로세스를 사용하여 항목의 색인을 생성합니다. 삭제를 감지합니다 그림 2는 두 가지를 사용하여 항목을 삭제하는 단계를 보여줍니다. 색인 생성 큐 구체적으로 그림 2는 두 번째 순회를 완전한 순회 전략을 사용합니다. 이 단계에서는 REST API 호출을 사용합니다. 대상 동등한 SDK 호출에 관한 자세한 내용은 큐 작업 (커넥터 SDK)을 참고하세요.
![Google Cloud Search 색인 생성 개요](https://developers-dot-devsite-v2-prod.appspot.com/static/cloud-search/images/architecture-queues-delete.png?authuser=5&hl=ko)
콘텐츠 커넥터는 초기 순회 시
items.push
색인 생성 큐인 '큐 A'로 항목 (메타데이터 및 해시) 푸시 :NEW_ITEM
입니다. 각 항목에는 라벨이 지정됩니다. 'A' 'A 대기열'을 입력합니다. 콘텐츠는 Cloud Search에 색인이 생성됩니다.콘텐츠 커넥터는
items.poll
큐 A를 폴링하여 색인을 생성할 항목을 결정합니다. Cloud Search는 색인 생성이 가장 필요한 항목을 상태 코드로 먼저 정렬한 다음 있습니다커넥터가 저장소에서 이러한 항목을 검색하고 색인을 빌드합니다. API 요청
커넥터는
items.index
사용하여 항목의 색인을 생성합니다. 항목은 Cloud Search 다음에ACCEPTED
상태로 전환됩니다. 항목 처리가 완료됩니다.이
deleteQueueItems
'대기열 B'에서 호출됩니다. 하지만 대기열 B로 푸시된 항목이 없으므로 아무것도 삭제할 수 없습니다두 번째 전체 순회에서는 콘텐츠 커넥터가
items.push
항목 (메타데이터 및 해시)을 큐 B로 푸시합니다.- 푸시할 때 커넥터는 푸시를 명시적으로 포함합니다.
type
또는contentHash
. - 커넥터에
type
가 포함되지 않으면 Cloud Search는 자동으로contentHash
를 사용하여 항목의 상태를 확인합니다. - 알 수 없는 상품인 경우 항목 상태가
NEW_ITEM
로 설정되며 현재 재생목록은 'B'로 변경됩니다. - 상품이 존재하고 해시 값이 일치하면 상태가
ACCEPTED
로 유지됩니다. 대기열 라벨은 'B'로 변경됩니다. - 항목이 존재하고 해시가 다른 경우 상태는
MODIFIED
가 되고 큐가 'B'로 변경됩니다.
- 푸시할 때 커넥터는 푸시를 명시적으로 포함합니다.
콘텐츠 커넥터는
items.poll
큐를 폴링하여 색인을 생성할 항목을 결정합니다. Cloud Search는 색인 생성이 가장 필요한 항목을 상태 코드로 먼저 정렬한 다음 있습니다커넥터가 저장소에서 이러한 항목을 검색하고 색인을 빌드합니다. API 요청
커넥터는
items.index
사용하여 항목의 색인을 생성합니다. 항목은 Cloud Search 다음에ACCEPTED
상태로 전환됩니다. 항목 처리가 완료됩니다.마지막으로,
deleteQueueItems
대기열 A에서 호출되어 이전에 색인이 생성된 모든 CCloud Search 항목을 삭제합니다. 큐 'A'가 계속 있음 라벨을 지정합니다.이후에 전체 순회를 수행하면 색인 생성에 사용되는 큐는 삭제에 사용되는 큐가 교체됩니다.
큐 작업(커넥터 SDK)
콘텐츠 커넥터 SDK는 큐에 항목을 내보내고 큐에서 항목을 가져오는 작업을 제공합니다.
항목을 패키징하고 큐에 푸시하려면 pushItems
를 사용합니다.
빌더 클래스
개발자는 큐에서 처리할 항목을 가져오기 위해 특별한 작업을 수행할 필요가 없습니다. 대신 SDK가 우선순위에 따라 큐에서 항목을 자동으로 가져옵니다.
사용하여
Repository 클래스의 하위 클래스
getDoc
메서드를 사용하여 축소하도록 요청합니다.
큐 작업(REST API)
REST API는 큐로 항목을 내보내고 큐에서 항목을 가져올 때 다음과 같은 2가지 메소드를 제공합니다.
- 큐로 항목을 푸시하려면
Items.push
를 사용합니다. - 큐의 항목을 폴링하려면
Items.poll
를 사용합니다.
또한
Items.index
색인 생성 중에 큐로 항목을 푸시할 수 있습니다. 상품이 현재 재생목록으로 푸시되는 동안
색인 생성에는
type
자동으로
ACCEPTED
입니다.
Items.push
이
Items.push
메서드는 큐에 ID를 추가합니다. 이 메서드는 특정
type
푸시 작업의 결과를 결정하는 값입니다. type
값 목록은 다음을 참고하세요.
대상
Items.push의 item.type
필드
메서드를 사용하여 축소하도록 요청합니다.
새 ID를 푸시하면 NEW_ITEM
이 있는 새 항목이 추가됩니다.
ItemStatus
생성합니다.
선택적 페이로드는 항상 저장되고 불투명 값으로 처리되어 반환됩니다.
최저가:
Items.poll
항목이 폴링되면 예약되어 다음에서 반환할 수 없습니다.
또 다른 호출
Items.poll
사용
Items.push
다음 코드로 교체합니다.
type
NOT_MODIFIED
, REPOSITORY_ERROR
또는 REQUEUE
등, 예약 취소
파악할 수 있습니다. 예약된 항목과 예약되지 않은 항목에 대한 자세한 내용은
Items.poll 섹션을 참조하세요.
해시가 있는 Items.push
Google Cloud Search API는 메타데이터 및 콘텐츠 해시 값 지정을 지원합니다.
의
Items.index
요청을 처리합니다 포드는
type
,
메타데이터 또는 콘텐츠 해시 값
푸시 요청으로 지정할 수 있습니다 Cloud Search 색인 생성 큐는
제공된 해시 값과
데이터 소스 일치하지 않으면 해당 항목은 MODIFIED
로 표시됩니다. 해당하는
항목이 색인에 없으면 상태는 NEW_ITEM
입니다.
Items.poll
Items.poll 메소드는 큐에서 가장 우선순위가 높은 항목을 검색합니다. 요청된 및 반환된 상태 값은 요청된 우선순위 큐 또는 반환된 ID의 상태입니다.
기본적으로 큐의 모든 섹션에 있는 항목이 우선순위에 따라 반환될 수 있습니다. 반환된 각 항목은 예약되며 다른 항목에 의해 반환되지 않습니다.
호출 대상
Items.poll
충족해야 합니다.
- 예약이 타임아웃된 경우
Items.index
에 의해 항목이 다시 큐에 추가됩니다.Items.push
가type
NOT_MODIFIED
,REPOSITORY_ERROR
또는REQUEUE
의 값입니다.