SDK Konektor dan Cloud Search API mendukung pembuatan Cloud Search Indexing Queues. Gunakan antrean ini untuk:
- Mempertahankan status per dokumen (status, hash, dll.) agar indeks Anda tetap disinkronkan.
- Mempertahankan daftar item yang akan diindeks, seperti yang ditemukan selama traversal.
- Memprioritaskan item berdasarkan statusnya.
- Mempertahankan informasi status seperti checkpoint dan token perubahan.
Antrean adalah label yang ditetapkan ke item yang diindeks (misalnya, "default").
Status dan prioritas
Prioritas dokumen bergantung pada kode
ItemStatus. Kemungkinan kode, berdasarkan urutan prioritas (tertinggi hingga terendah), adalah:
ERROR: Item mengalami error asinkron dan perlu diindeks ulang.MODIFIED: Item sebelumnya diindeks, tetapi telah berubah di repositori.NEW_ITEM: Item belum diindeks.ACCEPTED: Item sebelumnya diindeks dan tidak berubah.
Untuk item dengan status yang sama, prioritas yang lebih tinggi diberikan kepada item yang telah berada dalam antrean paling lama.
Mengindeks item baru atau yang diubah
Gambar 1 menunjukkan langkah-langkah untuk mengindeks item baru atau yang diubah menggunakan antrean pengindeksan. Langkah-langkah ini mencerminkan panggilan REST API; untuk mengetahui kesamaan SDK, lihat Operasi antrean (SDK Konektor).
- Konektor konten menggunakan
items.pushuntuk mengirimkan metadata dan hash ke dalam antrean.- Jika konektor menyertakan
typeataucontentHash, Cloud Search akan menentukan statusnya. - Item yang tidak diketahui akan menerima status
NEW_ITEM. - Item yang ada dengan hash yang cocok tetap
ACCEPTED. - Item yang ada dengan hash yang berbeda akan menjadi
MODIFIED.
- Jika konektor menyertakan
- Konektor menggunakan
items.polluntuk menentukan item mana yang akan diindeks. Cloud Search menampilkan item dalam urutan prioritas. - Konektor mengambil item dari repositori dan membuat permintaan API indeks.
- Konektor menggunakan
items.indexuntuk mengindeks item. Item memasuki statusACCEPTEDsetelah berhasil diproses.
Menghapus item
Strategi traversal penuh menggunakan dua antrean untuk mengindeks item dan mendeteksi penghapusan. Gambar 2 menunjukkan penelusuran kedua dalam strategi ini.
- Pada traversal awal, konektor mendorong item ke "antrean A" sebagai
NEW_ITEM. Setiap item menerima label "A". - Konektor melakukan polling pada antrean A dan mengindeks item.
- Pada traversal penuh kedua, konektor akan mengirimkan item ke "antrean B".
- Item yang tidak diketahui akan menerima label "B" dan status
NEW_ITEM. - Item yang ada dengan hash yang cocok akan mengubah labelnya menjadi "B" dan tetap
ACCEPTED. - Item yang ada dengan hash berbeda akan mengubah labelnya menjadi "B" dan
menjadi
MODIFIED.
- Item yang tidak diketahui akan menerima label "B" dan status
- Konektor melakukan polling antrean B dan mengindeks item.
- Terakhir, konektor memanggil
deleteQueueItemsdi antrean A. Perintah ini akan menghapus semua item yang diindeks sebelumnya yang masih memiliki label "A". - Penelusuran berikutnya menukar peran kedua antrean.
Operasi antrean (SDK Konektor)
Gunakan
pushItems
builder untuk mendorong item. SDK otomatis menarik item dari antrean dalam urutan prioritas menggunakan metode getDoc class Repository.
Operasi antrean (REST API)
- Untuk mendorong: gunakan
Items.push. - Untuk melakukan polling: gunakan
Items.poll.
Anda juga dapat menggunakan
Items.index
untuk mendorong item selama pengindeksan. Item ini menerima status ACCEPTED secara otomatis.
Items.push
Metode ini menambahkan ID ke antrean.
type
menentukan hasilnya. Mendorong ID baru akan menambahkan entri dengan status NEW_ITEM.
Payload opsional ditampilkan selama polling.
Item yang ditarik memiliki status dipesan dan tidak dapat ditampilkan oleh panggilan polling lainnya. Menggunakan
Items.push dengan type yang ditetapkan ke NOT_MODIFIED, REPOSITORY_ERROR, atau
REQUEUE membatalkan reservasi entri.
Items.push dengan hash
Tentukan hash metadata atau konten dalam permintaan push.
Cloud Search membandingkan nilai ini dengan nilai yang disimpan. Jika tidak cocok,
entri akan menjadi MODIFIED. ID yang tidak cocok dan tidak ada akan menjadi
NEW_ITEM.
Items.poll
Metode ini mengambil entri prioritas tinggi. Setiap entri yang ditampilkan memiliki status dipesan
hingga waktu habis, diindeks ulang, atau dibatalkan pemesanannya menggunakan Items.push.