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).
- Oprogramowanie sprzęgające treści używa
items.pushdo umieszczania metadanych i wartości skrótu w kolejce.- Jeśli program sprzęgający zawiera push
typelubcontentHash, 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.
- Jeśli program sprzęgający zawiera push
- Oprogramowanie sprzęgające używa parametru
items.polldo określania, które elementy mają być indeksowane. Cloud Search zwraca elementy w kolejności priorytetu. - Oprogramowanie sprzęgające pobiera elementy z repozytorium i tworzy żądania interfejsu API indeksu.
- Oprogramowanie sprzęgające używa
items.indexdo indeksowania elementów. Po pomyślnym przetworzeniu produkt przechodzi w stanACCEPTED.
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.
- Podczas pierwszego przejścia oprogramowanie sprzęgające umieszcza elementy w „kolejce A” jako
NEW_ITEM. Każdy element otrzymuje etykietę „A”. - Oprogramowanie sprzęgające odpytuje kolejkę A i indeksuje elementy.
- 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.
- Nieznane produkty otrzymują etykietę „B” i stan
- Oprogramowanie sprzęgające odpytuje kolejkę B i indeksuje elementy.
- Na koniec oprogramowanie sprzęgające wywołuje
deleteQueueItemsw kolejce A. Spowoduje to usunięcie wszystkich wcześniej zindeksowanych elementów, które nadal mają etykietę „A”. - 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)
- Aby wypchnąć: użyj
Items.push. - Aby przeprowadzić ankietę, użyj
Items.poll.
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.