Mit dem Connector SDK und der Cloud Search API können Sie Cloud Search-Indexierungswarteschlangen erstellen. Diese Warteschlangen können für folgende Zwecke verwendet werden:
- 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 Element ist ein asynchroner Fehler aufgetreten und es muss neu indexiert werden.MODIFIED: Das Element wurde zuvor indexiert, hat sich aber im Repository geändert.NEW_ITEM: Das Element wurde noch nicht indexiert.ACCEPTED: Das Element wurde zuvor indexiert und hat sich nicht geändert.
Bei Elementen mit demselben Status haben diejenigen eine höhere Priorität, 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 beziehen sich auf REST API-Aufrufe. Entsprechende SDK-Aufrufe finden Sie unter Vorgänge in der Warteschlange (Connector SDK).
- Der Content-Connector verwendet
items.push, um Metadaten und Hashwerte in eine Warteschlange zu verschieben.- Wenn der Connector einen Push
typeodercontentHashenthält, wird der Status von Cloud Search bestimmt. - Unbekannte Elemente erhalten den Status
NEW_ITEM. - Vorhandene Elemente mit übereinstimmenden Hashwerten bleiben
ACCEPTED. - Vorhandene Elemente mit unterschiedlichen Hashwerten werden zu
MODIFIED.
- Wenn der Connector einen Push
- 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.indexum die Elemente zu indexieren. Nach der erfolgreichen Verarbeitung wechselt ein Element in den StatusACCEPTED.
Elemente löschen
Bei der Strategie des vollständigen Durchlaufs werden zwei Warteschlangen verwendet, um Elemente zu indexieren und Löschvorgänge zu erkennen. Abbildung 2 zeigt den zweiten Durchlauf bei dieser Strategie.
- Beim ersten Durchlauf verschiebt der Connector Elemente als
NEW_ITEMin die Warteschlange A. Jedes Element erhält das Label „A“. - Der Connector fragt die Warteschlange A ab und indexiert die Elemente.
- Beim zweiten vollständigen Durchlauf verschiebt der Connector Elemente in die Warteschlange B.
- Unbekannte Elemente erhalten das Label „B“ und den Status
NEW_ITEM. - Bei vorhandenen Elementen mit übereinstimmenden Hashwerten wird das Label in „B“ geändert und der Status bleibt
ACCEPTED. - Bei vorhandenen Elementen mit unterschiedlichen Hashwerten wird das Label in „B“ geändert und der Status wird zu
MODIFIED.
- Unbekannte Elemente erhalten das Label „B“ und den Status
- Der Connector fragt die Warteschlange B ab und indexiert die Elemente.
- Schließlich ruft der Connector
deleteQueueItemsfür die 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
pushItems
Builder, um Elemente zu verschieben. Das SDK ruft Elemente automatisch in
der Reihenfolge ihrer Priorität aus der Warteschlange ab. Dazu wird die Methode Repository der Klasse
getDoc
verwendet.
Vorgänge in der Warteschlange (REST API)
- Verschieben: Verwenden Sie
Items.push. - Abfragen: Verwenden Sie
Items.poll.
Während der Indexierung können Sie Elemente auch mithilfe von
Items.index
verschieben. Diese Elemente erhalten automatisch den Status ACCEPTED.
Items.push
Mit dieser Methode werden der Warteschlange IDs hinzugefügt. The
type
bestimmt das Ergebnis. Wenn Sie eine neue ID verschieben, wird ein Eintrag mit dem Status NEW_ITEM hinzugefügt.
Die optionale Nutzlast wird während der Abfrage 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 festlegen, wird die Reservierung der Einträge aufgehoben.
Items.push mit Hashwerten
Geben Sie in der Push-Anfrage Metadaten oder Content-Hashwerte an.
Cloud Search vergleicht diese mit den 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 das Zeitlimit überschritten wird, er neu indexiert wird oder die Reservierung mit Items.push aufgehoben wird.