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:

  • Utrzymuj stan poszczególnych dokumentów (stan, hasze itp.), aby indeks był zsynchronizowany.
  • utrzymywać listę elementów do zindeksowania, które zostały wykryte podczas przechodzenia;
  • Ustal priorytety elementów na podstawie ich stanu.
  • przechowywania informacji o stanie, takich 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: produkt napotkał błąd asynchroniczny i wymaga ponownego zindeksowania.
  • MODIFIED: produkt został wcześniej zindeksowany, ale uległ zmianie w repozytorium.
  • NEW_ITEM: produkt 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

Ilustracja 1 przedstawia kroki indeksowania nowego lub zmienionego elementu za pomocą kolejki indeksowania. Te czynności odzwierciedlają wywołania interfejsu REST API. Odpowiedniki w pakiecie SDK znajdziesz w sekcji Operacje na kolejkach (pakiet SDK oprogramowania sprzęgającego).

Omówienie indeksowania w Cloud Search
Rysunek 1. Kroki indeksowania, które należy wykonać, aby dodać lub zaktualizować element
  1. Oprogramowanie sprzęgające treści używa items.push do umieszczania metadanych i wartości skrótu w kolejce.
    • Jeśli program sprzęgający zawiera push type lub contentHash, Cloud Search określa stan.
    • Nieznane produkty otrzymują stan NEW_ITEM.
    • Istniejące elementy z pasującymi haszami pozostaną ACCEPTED.
    • Dotychczasowe produkty z różnymi haszami staną się MODIFIED.
  2. Oprogramowanie sprzęgające używa parametru items.poll do określania, które elementy mają być indeksowane. Cloud Search zwraca elementy w kolejności priorytetu.
  3. Oprogramowanie sprzęgające pobiera elementy z repozytorium i tworzy żądania interfejsu API indeksu.
  4. Oprogramowanie sprzęgające używa items.index do indeksowania elementów. Po pomyślnym przetworzeniu produkt przechodzi w stan ACCEPTED.

Usuwanie elementu

Strategia pełnego przechodzenia korzysta z 2 kolejek do indeksowania elementów i wykrywania usunięć. Na rysunku 2 widać drugie przejście w ramach 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” jakoNEW_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 łącznik przesyła elementy do „kolejki B”.
    • Nieznane produkty otrzymują etykietę „B” i stan NEW_ITEM.
    • Istniejące elementy o pasujących skrótach zmieniają etykietę na „B” i pozostają w ACCEPTED.
    • Istniejące produkty z różnymi haszami zmieniają etykietę na „B” i stają się MODIFIED.
  4. Oprogramowanie sprzęgające odpytuje kolejkę B i indeksuje elementy.
  5. Na koniec oprogramowanie sprzęgające wywołuje deleteQueueItems w kolejce A. Spowoduje to usunięcie wszystkich wcześniej zindeksowanych elementów, które nadal mają etykietę „A”.
  6. Kolejne przejścia zamieniają role obu kolejek.

Operacje na kolejce (pakiet SDK łącznika)

Użyj narzędzia do tworzenia pushItems, aby przesłać produkty. Pakiet SDK automatycznie pobiera elementy z kolejki w kolejności priorytetów za pomocą metody Repository klasy getDoc.

Operacje na kolejkach (API REST)

Możesz też użyć Items.index do wypychania elementów podczas indeksowania. Te elementy automatycznie otrzymują stan ACCEPTED.

Items.push

Ta metoda dodaje identyfikatory do kolejki. Wynik zależy od type. Wysłanie nowego identyfikatora powoduje dodanie wpisu ze stanem NEW_ITEM. Opcjonalny ładunek jest zwracany podczas odpytywania.

Sprawdzone elementy są zarezerwowane i nie mogą być zwracane przez inne wywołania sprawdzania. Użycie elementu Items.push z atrybutem type ustawionym na NOT_MODIFIED, REPOSITORY_ERROR lub REQUEUE cofnie rezerwację wpisów.

Items.push z hashami

W żądaniu push określ metadane lub hasze treści. Cloud Search porównuje je z zapisanymi wartościami. Jeśli się nie zgadzają, wpis staje się MODIFIED. Niedopasowane identyfikatory, które nie istnieją, stają się NEW_ITEM.

Items.poll

Ta metoda pobiera wpisy o wysokim priorytecie. Każdy zwrócony wpis jest zarezerwowany, dopóki nie upłynie jego czas, nie zostanie ponownie zindeksowany lub nie zostanie odwołana jego rezerwacja za pomocą Items.push.