Mit dem Connector SDK und der Cloud Search API können Sie Cloud Search-Indexierungswarteschlangen erstellen. Mit diesen Warteschlangen können Sie:
- Dokumentzustand beibehalten, z. B. den Status oder Hashwerte. Mithilfe des Zustands können Sie den Index auf Ihr Repository abstimmen.
- Eine Liste der Elemente verwalten, die während des Durchlaufens als erkannt indexiert werden sollen.
- Elemente anhand ihres Status priorisieren.
- Statusinformationen wie Checkpoints und Änderungstokens verwalten.
Eine Warteschlange ist ein Label, das einem indexierten Element zugewiesen wird, z.B. „default“).
Status und Priorität
Die Priorität eines Dokuments hängt von seinem ItemStatus-Code ab. Mögliche Codes in der Reihenfolge der Priorität (höchste bis niedrigste):
ERROR: Beim Indexieren des Elements ist ein asynchroner Fehler aufgetreten und der Vorgang muss neu ausgeführt werden.MODIFIED: Das Element wurde zuvor indexiert, hat sich aber im Repository geändert.NEW_ITEM: Der Artikel ist noch nicht indexiert.ACCEPTED: Das Element wurde zuvor indexiert und hat sich nicht geändert.
Bei Elementen mit demselben Status haben diejenigen Vorrang, die sich am längsten in der Warteschlange befinden.
Neues oder geändertes Element indexieren
Abbildung 1 zeigt die Schritte zum Indexieren eines neuen oder geänderten Elements mithilfe einer Indexierungswarteschlange. Diese Schritte entsprechen REST API-Aufrufen. Entsprechende SDK-Aufrufe finden Sie unter Vorgänge in der Warteschlange (Connector SDK).
- Der Inhaltsconnector verwendet
items.push, um Metadaten und Hashes in eine Warteschlange zu übertragen.- Wenn der Connector einen Push-Vorgang
typeodercontentHashenthält, wird der Status von Cloud Search bestimmt. - Unbekannte Elemente erhalten den Status
NEW_ITEM. - Vorhandene Elemente mit übereinstimmenden Hashes bleiben
ACCEPTED. - Vorhandene Elemente mit unterschiedlichen Hashes werden zu
MODIFIED.
- Wenn der Connector einen Push-Vorgang
- Der Connector verwendet
items.poll, um zu bestimmen, welche Elemente indexiert werden sollen. Cloud Search gibt Elemente in der Reihenfolge ihrer Priorität zurück. - Der Connector ruft Elemente aus dem Repository ab und erstellt Index-API-Anfragen.
- Der Connector verwendet
items.indexzum Indexieren der Elemente. Ein Element wechselt nach erfolgreicher Verarbeitung in den StatusACCEPTED.
Elemente löschen
Bei der Strategie für vollständiges Durchlaufen werden zwei Warteschlangen verwendet, um Elemente zu indexieren und Löschungen zu erkennen. Abbildung 2 zeigt den zweiten Durchlauf in dieser Strategie.
- Beim ersten Durchlauf werden Elemente vom Connector als
NEW_ITEMin die Warteschlange A verschoben. Jedes Element erhält das Label „A.“. - Der Connector fragt Warteschlange A ab und indexiert die Elemente.
- Beim zweiten vollständigen Durchlauf werden Elemente vom Connector in die Warteschlange B verschoben.
- Unbekannte Artikel erhalten das Label „B“ und den Status
NEW_ITEM. - Bei vorhandenen Elementen mit übereinstimmenden Hashes wird das Label in „B“ geändert und sie bleiben
ACCEPTED. - Bei vorhandenen Artikeln mit unterschiedlichen Hashes wird das Label in „B“ geändert und sie werden zu
MODIFIED.
- Unbekannte Artikel erhalten das Label „B“ und den Status
- Der Connector fragt Warteschlange B ab und indexiert die Elemente.
- Schließlich ruft der Connector
deleteQueueItemsin Warteschlange A auf. Dadurch werden alle zuvor indexierten Elemente gelöscht, die noch das Label „A“ haben. - Bei nachfolgenden Durchläufen werden die Rollen der beiden Warteschlangen getauscht.
Vorgänge in der Warteschlange (Connector SDK)
Verwenden Sie den Builder pushItems, um Elemente zu pushen. Das SDK ruft Elemente automatisch in Prioritätsreihenfolge aus der Warteschlange ab. Dazu wird die Methode getDoc der Klasse Repository verwendet.
Warteschlangenoperationen (REST API)
- Zum Pushen: Verwenden Sie
Items.push. - Um eine Umfrage zu starten, verwenden Sie
Items.poll.
Während der Indexierung können Sie Elemente auch mithilfe von Items.index der Warteschlange hinzufügen. Diese Elemente erhalten automatisch den Status ACCEPTED.
Items.push
Mit dieser Methode werden der Warteschlange IDs hinzugefügt. Das Ergebnis wird durch type bestimmt. Wenn Sie eine neue ID übertragen, wird ein Eintrag mit dem Status NEW_ITEM hinzugefügt.
Die optionale Nutzlast wird beim Abrufen zurückgegeben.
Abgefragte Elemente sind reserviert und können nicht von anderen Abfrageaufrufen zurückgegeben werden. Wenn Sie Items.push verwenden und type auf NOT_MODIFIED, REPOSITORY_ERROR oder REQUEUE festgelegt ist, werden die Einträge reserviert.
„Items.push“ mit Hashwerten
Geben Sie Metadaten- oder Inhalts-Hashwerte in der Push-Anfrage an.
Cloud Search vergleicht diese mit gespeicherten Werten. Wenn sie nicht übereinstimmen, wird der Eintrag zu MODIFIED. Nicht übereinstimmende IDs, die nicht vorhanden sind, werden zu NEW_ITEM.
Items.poll
Mit dieser Methode werden Einträge mit hoher Priorität abgerufen. Jeder zurückgegebene Eintrag ist reserviert, bis er abläuft, neu indexiert oder mit Items.push aufgehoben wird.