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 są w kolejce najdłużej.
Indeksowanie nowego lub zmienionego elementu
Rysunek 1 przedstawia kroki indeksowania nowego lub zmienionego elementu za pomocą kolejki indeksowania. Te kroki odzwierciedlają wywołania interfejsu REST API. Odpowiedniki w pakiecie SDK znajdziesz w sekcji Operacje na kolejkach (pakiet SDK oprogramowania sprzęgającego).
- Łącznik treści używa
items.pushaby umieścić metadane i hasze w kolejce.- Jeśli oprogramowanie sprzęgające zawiera push
typelubcontentHash, 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.
- Jeśli oprogramowanie sprzęgające zawiera push
- Oprogramowanie sprzęgające używa
items.pollaby określić, które elementy mają zostać zindeksowane. Cloud Search zwraca elementy w kolejności priorytetu. - Oprogramowanie sprzęgające pobiera elementy z repozytorium i tworzy żądania interfejsu Index API.
- Oprogramowanie sprzęgające używa
items.indexaby zindeksować elementy. Po pomyślnym przetworzeniu element przechodzi w stanACCEPTED.
Usuwanie elementu
Strategia pełnego przechodzenia używa 2 kolejek do indeksowania elementów i wykrywania usunięć. Rysunek 2 przedstawia drugie przejście w 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 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.
- Nieznane elementy otrzymują etykietę „B” i stan
- Oprogramowanie sprzęgające odpytuje kolejkę B i indeksuje elementy.
- Na koniec oprogramowanie sprzęgające wywołuje metodę
deleteQueueItemsw kolejce A. Powoduje to usunięcie wszystkich wcześniej zindeksowanych elementów, które nadal mają etykietę „A”. - Podczas kolejnych przejść role obu kolejek są zamieniane.
Operacje na kolejkach (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 kolejkach (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 rezerwację wpisów.
Items.push ze skrótami
W żądaniu umieszczenia w kolejce określ skróty metadanych lub 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, gdy upłynie jego limit czasu, zostanie ponownie zindeksowany lub zostanie zwolniony za pomocą metody Items.push.