Kolejki indeksowania Google Cloud Search

Pakiet SDK oprogramowania sprzęgającego i interfejs Cloud Search API obsługują tworzenie kolejek indeksowania Cloud Search. Używaj tych kolejek, aby:

  • utrzymywać stan poszczególnych dokumentów (stan, skróty itp.), aby indeks był aktualny;
  • utrzymywać listę elementów do zindeksowania, które zostały wykryte podczas przechodzenia;
  • ustalać priorytety elementów na podstawie ich stanu;
  • utrzymywać informacje o stanie, takie jak punkty kontrolne i tokeny zmian.

Kolejka to etykieta przypisana do zindeksowanego elementu (np. „default”).

Stan i priorytet

Priorytet dokumentu zależy od jego ItemStatus kodu. Możliwe kody w kolejności priorytetu (od najwyższego do najniższego):

  • ERROR: element napotkał błąd asynchroniczny i wymaga ponownego zindeksowania.
  • MODIFIED: element został wcześniej zindeksowany, ale uległ zmianie w repozytorium.
  • NEW_ITEM: element nie został jeszcze zindeksowany.
  • ACCEPTED: element został wcześniej zindeksowany i nie uległ zmianie.

W przypadku elementów o tym samym stanie wyższy priorytet mają te, które najdłużej znajdują się w kolejce.

Indeksowanie nowego lub zmienionego elementu

Na rysunku 1 przedstawiono czynności, które należy wykonać, aby zindeksować nowy lub zmieniony element za pomocą kolejki indeksowania. Te czynności odzwierciedlają wywołania interfejsu REST API. Odpowiedniki w pakiecie SDK znajdziesz w sekcji Operacje na kolejce (pakiet SDK oprogramowania sprzęgającego).

Omówienie indeksowania w Cloud Search
Rysunek 1. Czynności indeksowania, które należy wykonać, aby dodać lub zaktualizować element
  1. Oprogramowanie sprzęgające treści używa items.push aby umieścić metadane i skróty w kolejce.
    • Jeśli oprogramowanie sprzęgające zawiera push type lub contentHash, Cloud Search określa stan.
    • Nieznane elementy otrzymują stan NEW_ITEM.
    • Istniejące elementy z pasującymi skrótami pozostają w stanie ACCEPTED.
    • Istniejące elementy z różnymi skrótami zmieniają stan na MODIFIED.
  2. Oprogramowanie sprzęgające używa items.poll aby określić, które elementy mają zostać zindeksowane. Cloud Search zwraca elementy w kolejności priorytetu.
  3. Oprogramowanie sprzęgające pobiera elementy z repozytorium i tworzy żądania interfejsu Index API.
  4. Oprogramowanie sprzęgające używa items.index aby zindeksować elementy. Po pomyślnym przetworzeniu element przechodzi w stan ACCEPTED.

Usuwanie elementu

Strategia pełnego przechodzenia wykorzystuje 2 kolejki do indeksowania elementów i wykrywania usunięć. Na rysunku 2 przedstawiono drugie przejście w tej strategii.

Omówienie indeksowania w Cloud Search
Rysunek 2. Usuwanie elementów
  1. Podczas pierwszego przejścia oprogramowanie sprzęgające umieszcza elementy w „kolejce A” jako NEW_ITEM. Każdy element otrzymuje etykietę „A”.
  2. Oprogramowanie sprzęgające odpytuje kolejkę A i indeksuje elementy.
  3. Podczas drugiego pełnego przejścia oprogramowanie sprzęgające umieszcza elementy w „kolejce B”.
    • Nieznane elementy otrzymują etykietę „B” i stan NEW_ITEM.
    • Istniejące elementy z pasującymi skrótami zmieniają etykietę na „B” i pozostają w stanie ACCEPTED.
    • Istniejące elementy z różnymi skrótami zmieniają etykietę na „B” i stan na MODIFIED.
  4. Oprogramowanie sprzęgające odpytuje kolejkę B i indeksuje elementy.
  5. Na koniec oprogramowanie sprzęgające wywołuje metodę deleteQueueItems w kolejce A. Spowoduje to usunięcie wszystkich wcześniej zindeksowanych elementów, które nadal mają etykietę „A”.
  6. Podczas kolejnych przejść role obu kolejek są zamieniane.

Operacje na kolejce (pakiet SDK oprogramowania sprzęgającego)

Aby umieścić elementy w kolejce, użyj narzędzia do tworzenia pushItems. Pakiet SDK automatycznie pobiera elementy z kolejki w kolejności priorytetu za pomocą klasy Repository's getDoc metody.

Operacje na kolejce (interfejs REST API)

  • Aby umieścić element w kolejce, użyj metody Items.push.
  • Aby odpytać kolejkę, użyj metody Items.poll.

Podczas indeksowania możesz też użyć metody Items.index aby umieścić elementy w kolejce. Te elementy automatycznie otrzymują stan ACCEPTED.

Items.push

Ta metoda dodaje identyfikatory do kolejki. type określa wynik. Umieszczenie w kolejce nowego identyfikatora powoduje dodanie wpisu ze stanem NEW_ITEM. Opcjonalny ładunek jest zwracany podczas odpytywania.

Odpytywane elementy są zarezerwowane i nie mogą być zwracane przez inne wywołania odpytywania. Użycie metody Items.push z wartością type ustawioną na NOT_MODIFIED, REPOSITORY_ERROR lub REQUEUE zwalnia wpisy.

Items.push ze skrótami

W żądaniu push określ metadane lub skróty treści. Cloud Search porównuje je z zapisanymi wartościami. Jeśli wartości się nie zgadzają, wpis zmienia stan na MODIFIED. Niezgodne identyfikatory, które nie istnieją, zmieniają stan na NEW_ITEM.

Items.poll

Ta metoda pobiera wpisy o wysokim priorytecie. Każdy zwrócony wpis jest zarezerwowany do momentu, aż upłynie jego limit czasu, zostanie ponownie zindeksowany lub zostanie zwolniony za pomocą metody Items.push.