Die Indexierungswarteschlange in Google Cloud Search

Mit dem Connector SDK und der Cloud Search REST API können Sie in der Cloud Search-Indexierungswarteschlange erstellen. Diese erfüllt folgende Zwecke:

  • 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 in Warteschlangen auf Grundlage des Elementstatus priorisieren.

  • Zusätzliche Statusinformationen für eine effiziente Integration verwalten, z. B. Checkpoints, Änderungstokens usw.

Status und Priorität

Die Priorität eines Dokuments in einer Warteschlange basiert auf seinem ItemStatus code-Wert. In der folgenden Auflistung finden Sie die möglichen Statuscodes (ItemStatus) codes nach Priorität geordnet, angefangen mit der höchsten:

  • ERROR: Beim Indexieren des Elements ist ein asynchroner Fehler aufgetreten und der Vorgang muss neu ausgeführt werden.

  • MODIFIED: Das Element ist seit der letzten Indexierung im Repository geändert worden.

  • NEW_ITEM: Das Element ist nicht indexiert.

  • ACCEPTED: Das Dokument wurde zuvor indexiert und wurde seitdem im Repository nicht geändert.

Wenn zwei Elemente in einer Warteschlange denselben Status haben, erhält dasjenige Vorrang, das sich länger in der Warteschlange befindet.

Vorgänge in der Warteschlange (Connector SDK)

Mit dem Content Connector SDK werden Vorgänge zum Hinzufügen und Abrufen von Elementen zu bzw. aus einer Warteschlange bereitgestellt.

Wenn Sie ein Element verpacken und in einer Warteschlange platzieren möchten, verwenden Sie die Builder-Klasse pushItems.

Sie müssen nichts tun, um Elemente wieder aus der Warteschlange herauszuholen, wenn diese verarbeitet werden sollen. Dies geschieht mithilfe des SDK automatisch in der Reihenfolge der Priorität, und zwar mit der Methode getDoc der Repository-Klasse.

Vorgänge in der Warteschlange (REST API)

Mit der REST API werden die folgenden beiden Methoden zum Hinzufügen und Abrufen von Elementen zu bzw. aus einer Warteschlange bereitgestellt:

  • Zum Hinzufügen zu einer Warteschlange: Items.push
  • Zum Abrufen aus einer Warteschlange: Items.poll

Während der Indexierung können Sie Elemente auch mithilfe von Items.index der Warteschlange hinzufügen. Die Elemente benötigen dann keinen Typ (type) und erhalten automatisch den Status ACCEPTED.

Items.push

Mithilfe der Methode Items.push werden der Warteschlange IDs hinzugefügt. Sie kann mit einem bestimmten type-Wert aufgerufen werden, der das Ergebnis der Push-Vorgangs bestimmt. Eine Liste der type-Werte finden Sie in der Items.push-Methode im Feld item.type.

Das Einfügen einer neuen ID führt zu einem neuen Eintrag, der den ItemStatus code NEW_ITEM erhält.

Die optionale Nutzlast wird immer gespeichert, als nicht transparenter Wert behandelt und von Items.poll zurückgegeben.

Wenn ein Element abgefragt wird, ist es reserviert. Das bedeutet, dass es nicht von einem anderen Aufruf von Items.poll zurückgegeben werden kann. Wird für type der Wert NOT_MODIFIED, REPOSITORY_ERROR oder REQUEUE festgelegt und "type" mit Items.push zusammen verwendet, wird die Reservierung für abgefragten Einträge aufgehoben. Weitere Informationen zu reservierten und nicht reservierten Einträgen finden Sie im Abschnitt Items.poll.

Items.push mit Hashwerten

Mit der Cloud Search REST API können in Items.index-Anfragen Hashwerte für Metadaten und Inhalte angegeben werden. Statt type zu definieren, lassen sich Metadaten-/Inhalts-Hashwerte in einer Push-Anfrage angegeben. In Cloud Search-Indexierungswarteschlangen werden die bereitgestellten Hashwerte mit den gespeicherten Werten verglichen, die für das Element in der Datenquelle verfügbar sind. Falls es keine Übereinstimmung gibt, wird dieser Eintrag als MODIFIED markiert. Wenn im Index kein entsprechendes Element vorhanden ist, lautet der Status NEW_ITEM.

Items.poll

Mithilfe der Items.poll-Methode werden die Einträge mit der höchsten Priorität aus der Warteschlange abgerufen. Die angeforderten und zurückgegebenen Statuswerte geben den oder die Status der angeforderten Prioritätswarteschlangen oder den Status der zurückgegebenen IDs an.

Standardmäßig können aus allen Abschnitten der Warteschlange Einträge nach Priorität zurückgegeben werden. Jeder zurückgegebene Eintrag ist reserviert und wird bei anderen Aufrufen von Items.poll nicht zurückgegeben, bis einer der folgenden Anforderungen erfüllt ist:

  • Die Reservierung läuft ab.
  • Der Eintrag wird von Items.index wieder in die Warteschlange eingereiht.
  • Items.push wird mit einem type-Wert von NOT_MODIFIED, REPOSITORY_ERROR oder REQUEUE aufgerufen.