Google Cloud Search Indexing Queues

Dengan SDK Konektor dan REST API Cloud Search, Anda dapat membuat Cloud Search Indexing Queues yang digunakan untuk melakukan tugas berikut:

  • Mempertahankan status tiap dokumen (status, nilai hash, dan sebagainya) yang dapat digunakan untuk tetap menyinkronkan indeks dengan repositori Anda.

  • Mempertahankan daftar item yang akan diindeks sebagai ditemukan selama proses traversal.

  • Memprioritaskan item dalam antrean berdasarkan status item.

  • Mempertahankan informasi status tambahan untuk menciptakan integrasi yang efisien seperti checkpoint, token perubahan, dan lainnya.

Status & prioritas

Prioritas dokumen dalam antrean didasarkan pada kode ItemStatus. Berikut ini adalah kode ItemStatus yang memungkinkan berdasarkan urutan prioritas (ditangani terlebih dahulu hingga ditangani terakhir):

  • ERROR - Item mengalami error asinkron selama proses pengindeksan dan perlu diindeks ulang.

  • MODIFIED - Item yang sebelumnya diindeks dan telah diubah di repositori sejak pengindeksan terakhir.

  • NEW_ITEM — Item yang tidak diindeks.

  • ACCEPTED — Dokumen yang sebelumnya diindeks dan tidak berubah di repositori sejak pengindeksan terakhir.

Jika dua item dalam antrean memiliki status yang sama, prioritas lebih tinggi diberikan untuk item yang telah berada dalam antrean untuk jangka waktu paling lama.

Operasi antrean (SDK Konektor)

SDK Konektor Konten menyediakan operasi untuk mendorong item ke dan menarik item dari antrean.

Untuk mengemas dan mendorong item ke antrean, gunakan kelas pembuat pushItems.

Anda tidak perlu melakukan hal khusus untuk memproses penarikan item dari antrean. Sebagai gantinya, SDK tersebut secara otomatis menarik item dari antrean, sesuai urutan prioritas, menggunakan metode getDoc pada class Repositori.

Operasi antrean (REST API)

REST API menyediakan dua metode berikut untuk mendorong item ke dan menarik item dari antrean:

  • Untuk mendorong item ke antrean, gunakan Items.push.
  • Untuk menarik item dari antrean, gunakan Items.poll.

Anda juga dapat menggunakan Items.index untuk mendorong item ke antrean selama pengindeksan. Item yang didorong ke antrean selama pengindeksan tidak memerlukan type dan secara otomatis diberi status ACCEPTED.

Items.push

Metode Items.push menambahkan ID ke antrean. Metode ini dapat dipanggil dengan nilai type khusus yang menentukan hasil operasi dorong. Untuk mengetahui daftar nilai type, buka kolom item.type pada metode Items.push.

Mendorong ID baru menghasilkan penambahan entri baru dengan kode NEW_ITEM ItemStatus.

Payload opsional selalu disimpan, diperlakukan sebagai nilai buram, dan ditampilkan dari Items.poll.

Saat ditarik, item akan memiliki status dipesan, artinya item tersebut tidak dapat ditampilkan oleh panggilan lain ke Items.poll. Penggunaan Items.push dengan type sebagai NOT_MODIFIED, REPOSITORY_ERROR, atau REQUEUE akan membatalkan pesanan entri yang ditarik. Untuk mengetahui informasi lebih lanjut tentang entri yang dipesan dan tidak dipesan, lihat bagian Items.poll.

Items.push dengan hash

REST API Cloud Search mendukung penentuan nilai hash konten dan metadata pada permintaan Items.index. Alih-alih menentukan type, nilai hash konten dan/atau metadata dapat ditentukan dengan permintaan push. Cloud Search Indexing Queue akan membandingkan nilai hash yang diberikan dengan nilai tersimpan yang tersedia pada item di sumber data. Jika tidak cocok, entri tersebut ditandai sebagai MODIFIED. Jika item yang sesuai tidak ada dalam indeks, statusnya adalah NEW_ITEM.

Items.poll

Metode Items.poll mengambil entri dengan prioritas tertinggi dari antrean. Nilai status yang diminta dan ditampilkan menunjukkan status antrean prioritas yang diminta atau status ID yang ditampilkan.

Secara default, entri dari setiap bagian antrean dapat ditampilkan berdasarkan prioritasnya. Setiap entri yang ditampilkan memiliki status dipesan, dan tidak ditampilkan oleh panggilan lain ke Items.poll hingga salah satu dari kasus berikut terpenuhi:

  • Waktu reservasi habis.
  • Entri dimasukkan dalam antrean lagi oleh Items.index.
  • Items.push dipanggil dengan nilai type yang memiliki status NOT_MODIFIED, REPOSITORY_ERROR, atau REQUEUE.