Łącznik treści to program służący do przeglądania danych dla repozytorium przedsiębiorstwa i uzupełnić źródło danych. Google zapewnia: opcje tworzenia oprogramowania sprzęgającego treści:
SDK Content Connector. To dobra opcja, jeśli programujesz w Javie. Pakiet SDK Content Connector obejmuje pakiet interfejs API typu REST, który umożliwia szybkie tworzenie oprogramowania sprzęgającego. Tworzenie treści za pomocą pakietu SDK znajdziesz informacje Utwórz oprogramowanie sprzęgające treści za pomocą pakietu Content Connector SDK.
Niskopoziomowego interfejsu API typu REST lub bibliotek API. Użyj tych opcji, jeśli nie jesteś programowania w Javie lub jeśli baza kodu jest lepiej dostosowana do interfejs API typu REST lub biblioteka. Aby utworzyć oprogramowanie sprzęgające treści za pomocą interfejsu API REST, zapoznaj się z artykułem do Utwórz oprogramowanie sprzęgające treści za pomocą interfejsu API REST.
Typowy łącznik treści wykonuje te zadania:
- Odczyt i przetwarzanie parametrów konfiguracji.
- Pobiera dyskretne fragmenty danych do indeksowania, nazywane „elementami”. od osoby trzeciej do repozytorium treści.
- Łączy listy kontroli dostępu, metadane i dane o treści w elementy możliwe do indeksowania.
- Indeksuje elementy do źródła danych Cloud Search.
- (opcjonalnie) nasłuchuje powiadomień o zmianach w treściach osób trzecich z repozytorium. Powiadomienia o zmianach są konwertowane na prośby o zindeksowanie, aby zachować źródła danych Cloud Search zsynchronizowanego z repozytorium innej firmy. Oprogramowanie sprzęgające wykonuje to zadanie tylko wtedy, gdy repozytorium obsługuje wykrywanie zmian.
Utwórz oprogramowanie sprzęgające treści za pomocą pakietu Content Connector SDK
W poniższych sekcjach dowiesz się, jak utworzyć oprogramowanie sprzęgające treści za pomocą SDK Content Connector.
Skonfiguruj zależności
Aby korzystać z pakietu SDK, musisz w pliku kompilacji uwzględnić określone zależności. Kliknij na karcie poniżej, aby wyświetlić zależności dla środowiska kompilacji:
Maven
<dependency>
<groupId>com.google.enterprise.cloudsearch</groupId>
<artifactId>google-cloudsearch-indexing-connector-sdk</artifactId>
<version>v1-0.0.3</version>
</dependency>
Gradle
compile group: 'com.google.enterprise.cloudsearch',
name: 'google-cloudsearch-indexing-connector-sdk',
version: 'v1-0.0.3'
Tworzenie konfiguracji oprogramowania sprzęgającego
Każde oprogramowanie sprzęgające ma plik konfiguracji zawierający parametry używane przez
takie jak identyfikator repozytorium. Parametry są zdefiniowane jako
par klucz-wartość, takich jak
api.sourceId=1234567890abcdef
Pakiet SDK Google Cloud Search zawiera kilka konfiguracji dostarczonych przez Google parametrów używanych przez wszystkie oprogramowanie sprzęgające. Musisz zadeklarować: Parametry dostarczone przez Google w pliku konfiguracyjnym:
- W przypadku łącznika treści musisz zadeklarować
api.sourceId
iapi.serviceAccountPrivateKeyFile
, ponieważ te parametry identyfikują lokalizację. i klucza prywatnego potrzebnego do uzyskania dostępu do repozytorium.
- W przypadku łącznika tożsamości musisz zadeklarować
api.identitySourceId
jako określa lokalizację zewnętrznego źródła tożsamości. Jeśli jesteś synchronizujesz użytkowników, musisz też zadeklarowaćapi.customerId
jako unikalny identyfikator dla konto Google Workspace Twojej firmy.
O ile nie chcesz zastąpić wartości domyślnych innych ustawień nie musisz deklarować ich w pliku konfiguracji. Dodatkowe informacje na temat parametrów konfiguracji dostarczonych przez Google, takich jak jak generować identyfikatory i klucze, zapoznaj się z artykułem Parametry konfiguracji udostępnione przez Google.
Możesz też zdefiniować własne parametry repozytorium do wykorzystania w .
Przekaż plik konfiguracji do oprogramowania sprzęgającego
Ustaw właściwość systemową config
, aby przekazywać plik konfiguracji do
. Możesz ustawić właściwość za pomocą argumentu -D
podczas uruchamiania
i łącznika danych. Na przykład poniższe polecenie uruchamia oprogramowanie sprzęgające
za pomocą pliku konfiguracji MyConfig.properties
:
java -classpath myconnector.jar;... -Dconfig=MyConfig.properties MyConnector
Jeśli brakuje tego argumentu, pakiet SDK próbuje uzyskać dostęp do konfiguracji domyślnej.
plik o nazwie connector-config.properties
.
Określ strategię przemierzania
Główną funkcją łącznika treści jest przemierzanie repozytorium indeksowanie jej danych. Musisz wdrożyć strategię przemierzania opartą na układ danych w repozytorium. Możesz opracować własną strategię lub wybrać spośród następujących strategii zaimplementowanych w pakiecie SDK:
- Strategia pełnego przemierzania
Strategia pełnego przemierzania skanuje całe repozytorium i ślepo wykonuje indeksowanie każdego elementu. Ta strategia jest często stosowana, gdy masz małe repozytorium i możesz sobie pozwolić na koszty związane z pełnym przemierzaniem przy każdym indeksowaniu.
Ta strategia przemierzania jest odpowiednia dla małych repozytoriów zawierających głównie statyczne, niehierarchiczne. Możesz też użyć tej strategii przemierzania gdy wykrywanie zmian jest trudne lub nieobsługiwane przez repozytorium.
- Strategia przemierzania listy
Strategia przemierzania listy skanuje całe repozytorium, w tym wszystkie obiekty podrzędne węzłów, które określają stan każdego elementu. Następnie łączy się przez chwilę i indeksuje tylko te elementy, które są nowe lub zostały zaktualizowane od ostatniego indeksowanie. Strategia ta jest zwykle wykorzystywana do zwiększania przyrostu wartości aktualizacji istniejącego indeksu (bez konieczności wykonywania pełnego przemierzania podczas aktualizowania indeksu).
Ta strategia przemierzania jest odpowiednia, gdy wykrywanie zmian jest trudne lub nie jest obsługiwane przez repozytorium, masz dane niehierarchiczne i jesteś pracy z bardzo dużymi zbiorami danych.
- Omijanie wykresu
Strategia przemierzania wykresu skanuje cały węzeł nadrzędny, określając stan każdego elementu. Następnie oprogramowanie sprzęgające korzysta z drugiego przebiegu i przeprowadza indeksowanie tylko elementy w węźle głównym są nowe lub zostały zaktualizowane od ostatniego indeksowania. Na koniec oprogramowanie sprzęgające przekazuje wszelkie identyfikatory podrzędne, a następnie indeksuje elementy w węzłach podrzędnych. nowe lub zaktualizowane. Łącznik rekurencyjnie we wszystkich węzłach podrzędnych, dopóki nie zareagujesz na wszystkie elementy. Takie przemierzanie jest zwykle używany w repozytoriach hierarchicznych, w których lista wszystkich identyfikatorów nie jest praktyczny.
Ta strategia jest odpowiednia, jeśli masz dane hierarchiczne, które muszą indeksowania, np. serii katalogów lub stron internetowych.
.
Każda z tych strategii przemierzania jest wdrażana przez szablon oprogramowania sprzęgającego w pakiecie SDK. Możesz wdrożyć własną strategię przemierzania, jednak te znacznie przyspieszają tworzenie oprogramowania sprzęgającego. Do utworzyć oprogramowanie sprzęgające przy użyciu szablonu. Zostanie wykonane do sekcji odpowiadającej strategię przemierzania:
- Tworzenie oprogramowania sprzęgającego pełnego przemierzania za pomocą klasy szablonu
- Tworzenie oprogramowania sprzęgającego przemierzania listy za pomocą klasy szablonu
- Tworzenie oprogramowania sprzęgającego przemierzania wykresu za pomocą klasy szablonu
Utwórz oprogramowanie sprzęgające przemierzania pełnego za pomocą klasy szablonu
Ta sekcja dokumentacji odnosi się do fragmentów kodu z FullTraversalSample.
Wdróż punkt wejścia oprogramowania sprzęgającego
Punktem wejścia oprogramowania sprzęgającego jest
Metoda main()
. Głównym zadaniem tej metody jest utworzenie instancji
Application
i wywołaj jej klasę
start()
do uruchomienia oprogramowania sprzęgającego.
Zanim zadzwonisz
application.start()
,
użyj
IndexingApplication.Builder
klasy do utworzenia instancji
FullTraversalConnector
szablon.
FullTraversalConnector
akceptuje
Repository
którego metody implementujesz. Fragment kodu poniżej pokazuje,
aby wdrożyć metodę main()
:
W tle pakiet SDK wywołuje metodę
initConfig()
po wywołaniu metody main()
oprogramowania sprzęgającego
Application.build
initConfig()
metoda
wykonuje następujące zadania:
- Wywołuje funkcję
Configuation.isInitialized()
aby zapewnić, żeConfiguration
nie została zainicjowana. - Inicjuje obiekt
Configuration
przy użyciu pary klucz-wartość dostarczonej przez Google pary. Każda para klucz-wartość jest przechowywana w plikuConfigValue
w obiekcieConfiguration
.
Wdrażanie interfejsu Repository
Jedynym przeznaczeniem obiektu Repository
jest wykonywanie przemierzania i
indeksowania elementów repozytorium. W przypadku użycia funkcji
szablonem, musisz zastąpić tylko niektóre metody w pliku Repository
aby utworzyć oprogramowanie sprzęgające treści. Zastępowane metody zależą od
szablonu i przemierzania. W przypadku wartości
FullTraversalConnector
, zastąp te metody:
init()
. Aby przeprowadzić konfigurację i zainicjowanie dowolnego repozytorium danych, zastąp Metodainit()
.getAllDocs()
. Aby przeglądać i indeksować wszystkie elementy w repozytorium danych, zastąp MetodagetAllDocs()
. Ta metoda jest wywoływana raz na każde zaplanowane przemierzanie (zgodnie z definicją w Twojej konfiguracji).(opcjonalnie) Parametr
getChanges()
. Jeśli repozytorium obsługuje wykrywanie zmian, zastąp MetodagetChanges()
. Ta metoda jest wywoływana raz dla każdego zaplanowanego przyrostu przemierzania (zgodnie z definicją w konfiguracji) w celu pobrania zmodyfikowanych elementów oraz w indeksie.(opcjonalnie) Parametr
close()
. Jeśli chcesz wyczyścić repozytorium, zastąpclose()
. Ta metoda jest wywoływana raz podczas wyłączania oprogramowania sprzęgającego.
Każda z metod
Repository
obiekt zwraca jakiś typ
ApiOperation
.
obiektu. Obiekt ApiOperation
wykonuje działanie w postaci pojedynczej lub
np. kilku, IndexingService.indexItem()
aby wykonać rzeczywiste indeksowanie repozytorium.
Pobierz niestandardowe parametry konfiguracji
W ramach konfiguracji oprogramowania sprzęgającego musisz pobrać
parametrów niestandardowych z parametru
Configuration
obiektu. To zadanie jest zwykle wykonywane
Repository
zajęcia
Metoda init()
.
Klasa Configuration
ma kilka metod uzyskiwania różnych typów danych
z konfiguracji. Każda metoda zwraca obiekt ConfigValue
. Ty następnie
użyj funkcji ConfigValue
get()
.
do pobrania rzeczywistej wartości.
Ten fragment kodu pochodzi z:
FullTraversalSample
,
pokazuje, jak pobrać
pojedynczą niestandardową wartość całkowitą z obiektu Configuration
:
Aby pobrać i przeanalizować parametr zawierający kilka wartości, użyj jednej z funkcji
parsery typów klasy Configuration
do analizowania danych na części.
Ten fragment kodu z oprogramowania sprzęgającego samouczka używa parametru
getMultiValue
metody pobierania listy nazw repozytoriów GitHub:
Wykonaj pełne przemierzenie
Zastąp
getAllDocs()
aby wykonać pełne przemierzenie i zindeksować repozytorium. getAllDocs()
akceptuje punkt kontrolny. Punkt kontrolny służy do wznawiania indeksowania w
określony element, jeśli proces ma zostać przerwany. Dla każdego elementu w
wykonaj te czynności w metodzie getAllDocs()
:
- Ustaw uprawnienia.
- Ustaw metadane zindeksowanego elementu.
- Połącz metadane i element w jeden możliwy do zindeksowania
RepositoryDoc
- Umieść każdy element możliwy do zindeksowania w iterator zwrócony przez funkcję
getAllDocs()
. Pamiętaj, że funkcjagetAllDocs()
zwraca błądCheckpointCloseableIterable
. czyli iteracjęApiOperation
każdy obiekt reprezentujący żądanie API wykonane naRepositoryDoc
, na przykład jej zindeksowanie.
Jeśli zbiór elementów jest zbyt duży, aby można było przetworzyć je w jednym wywołaniu, dołącz parametr
i ustaw punkt kontrolny
hasMore(true)
aby wskazać, że więcej elementów jest dostępnych do indeksowania.
Ustawianie uprawnień elementu
Twoje repozytorium używa listy kontroli dostępu (ACL) do identyfikowania użytkowników lub grupy, które mają dostęp do elementu. Lista kontroli dostępu (ACL) to lista identyfikatorów grup lub użytkowników którzy mają dostęp do danego elementu.
Musisz zduplikować listę kontroli dostępu (ACL) używaną przez Twoje repozytorium, aby mieć pewność, że tylko tych użytkowników użytkownik z dostępem do elementu może zobaczyć go w wynikach wyszukiwania. Podczas indeksowania elementu musi być uwzględniona lista kontroli dostępu (ACL), aby usługa Google Cloud Search miała informacje potrzebne do zapewnienia odpowiedniego poziomu dostępu. elementu.
Content Connector SDK udostępnia bogaty zestaw klas i metod ACL, aby modelowanie list kontroli dostępu w większości repozytoriów. Musisz przeanalizować listę ACL dla każdego elementu w i utworzyć odpowiednią listę kontroli dostępu dla Google Cloud Search, indeksuj element. Jeśli lista kontroli dostępu repozytorium obejmuje takie elementy jak lista kontroli dostępu (ACL) dziedziczenie, modelowanie, że ACL może być trudne. Więcej informacji o Google Listy ACL Cloud Search: patrz Listy kontroli dostępu (ACL) w Google Cloud Search
Uwaga: interfejs Cloud Search Indexing API obsługuje listy kontroli dostępu (ACL) w jednej domenie. Nie
obsługi list ACL dla wielu domen. Użyj
Acl.Builder
klasy dostępu do poszczególnych elementów za pomocą list kontroli dostępu. Poniższy fragment kodu został pobrany
z pełnej próby przemierzania, umożliwia
wszyscy użytkownicy lub „podmioty zabezpieczeń”
(getCustomerPrincipal()
)
być „czytelnikami” wszystkich elementów
(.setReaders()
)
podczas wyszukiwania.
Aby prawidłowo modelować listy kontroli dostępu w repozytorium, musisz znać listy kontroli dostępu. Dla: możesz na przykład indeksować pliki w systemie plików, Wykorzystuje model dziedziczenia, w którym foldery podrzędne dziedziczą uprawnienia. z folderów nadrzędnych. Dziedziczenie ACL w modelowaniu wymaga dodatkowych informacji poruszone w Listy kontroli dostępu (ACL) w Google Cloud Search
Ustawianie metadanych elementu
Metadane są przechowywane w obiekcie Item
. Aby utworzyć Item
, potrzebujesz
musi zawierać co najmniej identyfikator unikalnego ciągu znaków, typ elementu, listę kontroli dostępu, adres URL i wersję elementu.
Poniższy fragment kodu pokazuje, jak utworzyć Item
za pomocą
IndexingItemBuilder
.
klasę pomocniczą.
Tworzenie elementu możliwego do indeksowania
Po ustawieniu metadanych elementu możesz utworzyć plik
za pomocą atrybutu
RepositoryDoc.Builder
zajęcia. Przykład poniżej pokazuje, jak utworzyć pojedynczy element możliwy do zindeksowania.
RepositoryDoc
to typ funkcji ApiOperation
, który wykonuje działanie
Prośba o IndexingService.indexItem()
.
Możesz też użyć usługi
setRequestMode()
funkcji
RepositoryDoc.Builder
klasa identyfikująca żądanie indeksowania jako ASYNCHRONOUS
lub SYNCHRONOUS
:
ASYNCHRONOUS
- Tryb asynchroniczny wydłuża czas oczekiwania na indeksowanie i udostępnia obsługuje duży limit przepustowości żądań indeksowania. Obecny tryb asynchroniczny zalecane w przypadku początkowego indeksowania (zapełniania) całego repozytorium.
SYNCHRONOUS
- Tryb synchroniczny skraca czas oczekiwania na indeksowanie i wyświetla,
uwzględnia ograniczony limit przepustowości. Obecny tryb synchroniczny:
jest zalecany w przypadku indeksowania aktualizacji i zmian w repozytorium. Jeśli
nieokreślona, domyślny tryb żądania to
SYNCHRONOUS
.
Spakuj każdy element możliwy do zindeksowania w iteratorze
getAllDocs()
zwraca Iterator
, a konkretnie
CheckpointCloseableIterable
,
z
RepositoryDoc
obiektów. Za pomocą
CheckpointClosableIterableImpl.Builder
do utworzenia i zwrócenia iteracji. Fragment kodu poniżej pokazuje,
do utworzenia i zwrócenia iteracji.
Pakiet SDK wykonuje każde wywołanie indeksowania zawarte w iteratorze.
Następne kroki
Oto kilka kolejnych kroków, które możesz podjąć:
- (Opcjonalnie) Jeśli przepustowość indeksowania wydaje się niska, zapoznaj się z artykułem Zwiększanie szybkości indeksowania dla witryny
FullTraversalConnector
. - (Opcjonalnie) Zaimplementuj
close()
do zwolnienia zasobów przed wyłączeniem. - (Opcjonalnie) Utwórz oprogramowanie sprzęgające tożsamości za pomocą pakietu Content Connector SDK.
Utwórz oprogramowanie sprzęgające przemierzania listy za pomocą klasy szablonu
Kolejka indeksowania w Cloud Search służy do przechowywania identyfikatorów i opcjonalnych haszowania. dla każdego elementu w repozytorium. Wypchnięcia oprogramowania sprzęgającego przemierzania listy identyfikatorów elementów do kolejki indeksowania Google Cloud Search i pobiera je po jednym czas na indeksowanie. Google Cloud Search obsługuje kolejki porównywać zawartość kolejki, aby określić stan elementu, na przykład to, czy element zostały usunięte z repozytorium. Więcej informacji o Cloud Search Kolejka indeksowania, patrz Kolejka indeksowania w Cloud Search.
Ta sekcja dokumentacji odnosi się do fragmentów kodu z ListTraversalSample przykład.
Wdróż punkt wejścia oprogramowania sprzęgającego
Punktem wejścia oprogramowania sprzęgającego jest
Metoda main()
. Głównym zadaniem tej metody jest utworzenie instancji
Application
i wywołaj jej klasę
start()
do uruchomienia oprogramowania sprzęgającego.
Zanim zadzwonisz
application.start()
,
użyj
IndexingApplication.Builder
klasy do utworzenia instancji
ListingConnector
szablon. ListingConnector
akceptuje
Repository
.
którego metody implementujesz. Ten fragment kodu pokazuje, jak
utwórz instancję ListingConnector
i powiązaną z nią instancję Repository
:
W tle pakiet SDK wywołuje metodę
initConfig()
po wywołaniu metody main()
oprogramowania sprzęgającego
Application.build
Metoda initConfig()
:
- Wywołuje funkcję
Configuation.isInitialized()
aby zapewnić, żeConfiguration
nie została zainicjowana. - Inicjuje obiekt
Configuration
przy użyciu pary klucz-wartość dostarczonej przez Google pary. Każda para klucz-wartość jest przechowywana w plikuConfigValue
w obiekcieConfiguration
.
Wdrażanie interfejsu Repository
Jedynym przeznaczeniem obiektu Repository
jest wykonywanie przemierzania i
indeksowania elementów repozytorium. Jeśli używasz szablonu, musisz tylko zastąpić
określonych metod za pomocą interfejsu Repository
, aby utworzyć łącznik treści.
Metody zastępowania zależą od używanego szablonu i strategii przemierzania. W przypadku wartości
ListingConnector
,
zastąp te metody:
init()
. Aby przeprowadzić konfigurację i zainicjowanie dowolnego repozytorium danych, zastąp Metodainit()
.getIds()
. Aby pobrać identyfikatory i wartości skrótu dla wszystkich rekordów w repozytorium, zastąpić metodęgetIds()
.getDoc()
. Aby dodać nowe, zaktualizować, zmodyfikować lub usunąć elementy z indeksu, zastąp MetodagetDoc()
.(opcjonalnie) Parametr
getChanges()
. Jeśli repozytorium obsługuje wykrywanie zmian, zastąp MetodagetChanges()
. Ta metoda jest wywoływana raz dla każdego zaplanowanego przyrostu przemierzania (zgodnie z definicją w konfiguracji) w celu pobrania zmodyfikowanych elementów oraz w indeksie.(opcjonalnie) Parametr
close()
. Jeśli chcesz wyczyścić repozytorium, zastąpclose()
. Ta metoda jest wywoływana raz podczas wyłączania oprogramowania sprzęgającego.
Każda z metod obiektu Repository
zwraca określony typ
ApiOperation
.
obiektu. Obiekt ApiOperation
wykonuje działanie w postaci pojedynczej lub
np. kilku, IndexingService.indexItem()
aby wykonać rzeczywiste indeksowanie repozytorium.
Pobierz niestandardowe parametry konfiguracji
W ramach konfiguracji oprogramowania sprzęgającego musisz pobrać
parametrów niestandardowych z parametru
Configuration
obiektu. To zadanie jest zwykle wykonywane
Repository
zajęcia
Metoda init()
.
Klasa Configuration
ma kilka metod uzyskiwania różnych typów danych
z konfiguracji. Każda metoda zwraca obiekt ConfigValue
. Ty następnie
użyj funkcji ConfigValue
get()
.
do pobrania rzeczywistej wartości.
Ten fragment kodu pochodzi z:
FullTraversalSample
,
pokazuje, jak pobrać
pojedynczą niestandardową wartość całkowitą z obiektu Configuration
:
Aby pobrać i przeanalizować parametr zawierający kilka wartości, użyj jednej z funkcji
parsery typów klasy Configuration
do analizowania danych na części.
Ten fragment kodu z oprogramowania sprzęgającego samouczka używa parametru
getMultiValue
metody pobierania listy nazw repozytoriów GitHub:
Przeprowadź przemierzanie listy
Zastąp
getIds()
do pobierania identyfikatorów i wartości hash dla wszystkich rekordów w repozytorium.
Metoda getIds()
akceptuje punkt kontrolny. Punkt kontrolny jest używany do wznawiania
indeksowania konkretnego elementu, jeśli ten proces zostanie przerwany.
Następnie zastąp
getDoc()
do obsługi każdego elementu w kolejce indeksowania Cloud Search.
Przekazuj identyfikatory elementów i wartości skrótu
Zastąp
getIds()
do pobrania identyfikatorów produktów i powiązanych z nimi wartości skrótu treści z
z repozytorium. Pary identyfikatora i wartości skrótu są następnie pakowane w operacje push
do kolejki indeksowania w Cloud Search. Identyfikatory główne lub nadrzędne są zwykle
najpierw przekazywane są identyfikatory podrzędne, aż cała hierarchia elementów zostanie
przetworzono.
Metoda getIds()
akceptuje punkt kontrolny reprezentujący ostatni element, który ma zostać
. Za pomocą punktu kontrolnego można wznowić indeksowanie określonego elementu, który powinien
proces może zostać przerwany. W przypadku każdego elementu w repozytorium wykonaj te
kroki metody getIds()
:
- Pobierz z repozytorium każdy identyfikator elementu i powiązaną wartość skrótu.
- Umieść każdą parę identyfikatora i wartości skrótu w
PushItems
. - Połącz każde źródło
PushItems
w iterator zwrócony przez funkcjęgetIds()
. . Pamiętaj, że funkcjagetIds()
zwraca błądCheckpointCloseableIterable
. czyli iteracjęApiOperation
każdy obiekt reprezentujący żądanie API wykonane naRepositoryDoc
, na przykład przesyłając elementy do kolejki.
Poniższy fragment kodu pokazuje, jak uzyskać identyfikator i wartość skrótu każdego produktu oraz
wstaw je do
PushItems
Żądanie PushItems
to ApiOperation
żądanie przekazania elementu do Cloud Search
Kolejka indeksowania.
Fragment kodu poniżej pokazuje, jak używać parametru
PushItems.Builder
, aby spakować identyfikatory i wartości skrótu w pojedynczym przekazie push
ApiOperation
Elementy są przekazywane do kolejki indeksowania w Cloud Search w celu dalszego przetwarzania.
Pobieranie i obsługa każdego elementu
Zastąp
getDoc()
do obsługi każdego elementu w kolejce indeksowania w Cloud Search.
Element może być nowy, zmodyfikowany, niezmieniony lub nie może już istnieć w źródle
z repozytorium. Pobierz i zindeksuj każdy nowy lub zmodyfikowany element. Usuń elementy
z indeksu, którego już nie ma w repozytorium źródłowym.
Metoda getDoc()
akceptuje element z Google Cloud Search
Kolejka indeksowania. W przypadku każdego elementu w kolejce wykonaj te czynności
Metoda getDoc()
:
Sprawdź, czy identyfikator elementu znajduje się w kolejce indeksowania w Cloud Search. w repozytorium. Jeśli nie, usuń ten element z indeksu.
Przeprowadź ankietę w indeksie pod kątem stanu elementu i jeśli element się nie zmieni (
ACCEPTED
), nie dodawaj cokolwiek robimy.Zmieniony indeks lub nowe elementy:
- Ustaw uprawnienia.
- Ustaw metadane zindeksowanego elementu.
- Połącz metadane i element w jeden możliwy do zindeksowania
RepositoryDoc
- Zwrot
RepositoryDoc
.
Uwaga: szablon ListingConnector
nie obsługuje zwracania wartości null
w
metody getDoc()
. Zwracanie wyników null
w NullPointerException.
Obsługa usuniętych elementów
Fragment kodu poniżej pokazuje, jak sprawdzić, czy element znajduje się w Jeśli tak nie jest, usuń je.
Pamiętaj, że documents
to struktura danych reprezentująca repozytorium. Jeśli
Nie znaleziono parametru documentID
w polu documents
, zwróć
APIOperations.deleteItem(resourceName)
.
aby usunąć ten element z indeksu.
Obsługa niezmienionych elementów
Ten fragment kodu pokazuje, jak sondować stan elementu w Cloud Search Kolejka indeksowania i obsługa niezmienionego elementu.
Aby ustalić, czy produkt jest niezmodyfikowany, sprawdź też jego stan jak inne metadane, które mogą wskazywać na zmianę. W przykładzie metadane jest używany do określenia, czy element uległ zmianie.
Ustawianie uprawnień elementu
Twoje repozytorium używa listy kontroli dostępu (ACL) do identyfikowania użytkowników lub grupy, które mają dostęp do elementu. Lista kontroli dostępu (ACL) to lista identyfikatorów grup lub użytkowników którzy mają dostęp do danego elementu.
Musisz zduplikować listę kontroli dostępu (ACL) używaną przez Twoje repozytorium, aby mieć pewność, że tylko tych użytkowników użytkownik z dostępem do elementu może zobaczyć go w wynikach wyszukiwania. Podczas indeksowania elementu musi być uwzględniona lista kontroli dostępu (ACL), aby usługa Google Cloud Search miała informacje potrzebne do zapewnienia odpowiedniego poziomu dostępu. elementu.
Content Connector SDK udostępnia bogaty zestaw klas i metod ACL, aby modelowanie list kontroli dostępu w większości repozytoriów. Musisz przeanalizować listę ACL dla każdego elementu w i utworzyć odpowiednią listę kontroli dostępu dla Google Cloud Search, indeksuj element. Jeśli lista kontroli dostępu repozytorium obejmuje takie elementy jak lista kontroli dostępu (ACL) dziedziczenie, modelowanie, że ACL może być trudne. Więcej informacji o Google Listy ACL Cloud Search: patrz Listy kontroli dostępu (ACL) w Google Cloud Search
Uwaga: interfejs Cloud Search Indexing API obsługuje listy kontroli dostępu (ACL) w jednej domenie. Nie
obsługi list ACL dla wielu domen. Użyj
Acl.Builder
klasy dostępu do poszczególnych elementów za pomocą list kontroli dostępu. Poniższy fragment kodu został pobrany
z pełnej próby przemierzania, umożliwia
wszyscy użytkownicy lub „podmioty zabezpieczeń”
(getCustomerPrincipal()
)
być „czytelnikami” wszystkich elementów
(.setReaders()
)
podczas wyszukiwania.
Aby prawidłowo modelować listy kontroli dostępu w repozytorium, musisz znać listy kontroli dostępu. Dla: możesz na przykład indeksować pliki w systemie plików, Wykorzystuje model dziedziczenia, w którym foldery podrzędne dziedziczą uprawnienia. z folderów nadrzędnych. Dziedziczenie ACL w modelowaniu wymaga dodatkowych informacji poruszone w Listy kontroli dostępu (ACL) w Google Cloud Search
Ustawianie metadanych elementu
Metadane są przechowywane w obiekcie Item
. Aby utworzyć Item
, potrzebujesz
musi zawierać co najmniej identyfikator unikalnego ciągu znaków, typ elementu, listę kontroli dostępu, adres URL i wersję elementu.
Poniższy fragment kodu pokazuje, jak utworzyć Item
za pomocą
IndexingItemBuilder
.
klasę pomocniczą.
Tworzenie elementu możliwego do zindeksowania
Po ustawieniu metadanych elementu możesz utworzyć plik
za pomocą atrybutu
RepositoryDoc.Builder
Przykład poniżej pokazuje, jak utworzyć pojedynczy element możliwy do zindeksowania.
RepositoryDoc
jest typem
ApiOperation
, który wykonuje czynności
IndexingService.indexItem()
użytkownika.
Możesz też użyć usługi
setRequestMode()
funkcji
RepositoryDoc.Builder
klasa identyfikująca żądanie indeksowania jako ASYNCHRONOUS
lub SYNCHRONOUS
:
ASYNCHRONOUS
- Tryb asynchroniczny wydłuża czas oczekiwania na indeksowanie i udostępnia obsługuje duży limit przepustowości żądań indeksowania. Obecny tryb asynchroniczny zalecane w przypadku początkowego indeksowania (zapełniania) całego repozytorium.
SYNCHRONOUS
- Tryb synchroniczny skraca czas oczekiwania na indeksowanie i wyświetla,
uwzględnia ograniczony limit przepustowości. Obecny tryb synchroniczny:
jest zalecany w przypadku indeksowania aktualizacji i zmian w repozytorium. Jeśli
nieokreślona, domyślny tryb żądania to
SYNCHRONOUS
. .
Następne kroki
Oto kilka kolejnych kroków, które możesz podjąć:
- (Opcjonalnie) Zaimplementuj
close()
do zwolnienia zasobów przed wyłączeniem. - (Opcjonalnie) Utwórz oprogramowanie sprzęgające tożsamości za pomocą pakietu Content Connector SDK.
Utwórz oprogramowanie sprzęgające przemierzania wykresu za pomocą klasy szablonu
Kolejka indeksowania w Cloud Search służy do przechowywania identyfikatorów i opcjonalnych wartości haszowania. dla każdego elementu w repozytorium. Łącznik przemierzania wykresu przekazuje identyfikatory elementów do z kolejki indeksowania Google Cloud Search i pobiera je pojedynczo dla indeksowanie. Google Cloud Search obsługuje kolejki i porównuje ich zawartość z określać stan elementu, np. czy został on usunięty z repozytorium. Więcej informacji na temat kolejki indeksowania w Cloud Search znajdziesz na stronie do Kolejka indeksowania w Google Cloud Search.
Podczas indeksowania treść elementu jest pobierana z repozytorium danych i wszystkie identyfikatory elementów podrzędnych są przekazywane do kolejki. Łącznik działa rekurencyjnie przetwarzania identyfikatorów nadrzędnych i podrzędnych do momentu zakończenia obsługi wszystkich elementów.
Ta sekcja dokumentacji odnosi się do fragmentów kodu z GraphTraversalSample przykład.
Wdróż punkt wejścia oprogramowania sprzęgającego
Punktem wejścia oprogramowania sprzęgającego jest
Metoda main()
. Głównym zadaniem tej metody jest utworzenie instancji
Application
i wywołaj jej klasę
start()
do uruchomienia oprogramowania sprzęgającego.
Zanim zadzwonisz
application.start()
,
użyj
IndexingApplication.Builder
klasy do utworzenia instancji szablonu ListingConnector
.
ListingConnector
akceptuje
Repository
którego metody implementujesz.
Ten fragment kodu pokazuje, jak
utwórz instancję ListingConnector
i powiązaną z nią instancję Repository
:
W tle pakiet SDK wywołuje metodę
initConfig()
po wywołaniu metody main()
oprogramowania sprzęgającego
Application.build
Metoda initConfig()
:
- Wywołuje funkcję
Configuation.isInitialized()
aby zapewnić, żeConfiguration
nie została zainicjowana. - Inicjuje obiekt
Configuration
przy użyciu pary klucz-wartość dostarczonej przez Google pary. Każda para klucz-wartość jest przechowywana w plikuConfigValue
w obiekcieConfiguration
.
Wdrażanie interfejsu Repository
Jedynym celem
Obiekt Repository
służy do przemierzania i indeksowania repozytorium
elementy(ów). Jeśli używasz szablonu, musisz zastąpić tylko określone metody w tagu
Repository
, aby utworzyć łącznik treści. Zastępowane metody
zależą od używanego szablonu i strategii przemierzania. W przypadku wartości
ListingConnector
,
możesz zastąpić te metody:
init()
. Aby przeprowadzić konfigurację i zainicjowanie dowolnego repozytorium danych, zastąp Metodainit()
.getIds()
. Aby pobrać identyfikatory i wartości skrótu dla wszystkich rekordów w repozytorium, zastąpić metodęgetIds()
.getDoc()
. Aby dodać nowe, zaktualizować, zmodyfikować lub usunąć elementy z indeksu, zastąp MetodagetDoc()
.(opcjonalnie) Parametr
getChanges()
. Jeśli repozytorium obsługuje wykrywanie zmian, zastąp MetodagetChanges()
. Ta metoda jest wywoływana raz dla każdego zaplanowanego przyrostu przemierzania (zgodnie z definicją w konfiguracji) w celu pobrania zmodyfikowanych elementów oraz w indeksie.(opcjonalnie) Parametr
close()
. Jeśli chcesz wyczyścić repozytorium, zastąpclose()
. Ta metoda jest wywoływana raz podczas wyłączania oprogramowania sprzęgającego.
Każda z metod
Obiekt Repository
zwraca jakiś typ obiektu ApiOperation
. ApiOperation
obiekt wykonuje działanie w formie jednej lub kilku,
IndexingService.indexItem()
.
aby wykonać rzeczywiste indeksowanie repozytorium.
Pobierz niestandardowe parametry konfiguracji
W ramach konfiguracji oprogramowania sprzęgającego musisz pobrać
parametrów niestandardowych z parametru
Configuration
obiektu. To zadanie jest zwykle wykonywane
Repository
zajęcia
Metoda init()
.
Klasa Configuration
ma kilka metod uzyskiwania różnych typów danych
z konfiguracji. Każda metoda zwraca obiekt ConfigValue
. Ty następnie
użyj funkcji ConfigValue
get()
.
do pobrania rzeczywistej wartości.
Ten fragment kodu pochodzi z:
FullTraversalSample
,
pokazuje, jak pobrać
pojedynczą niestandardową wartość całkowitą z obiektu Configuration
:
Aby pobrać i przeanalizować parametr zawierający kilka wartości, użyj jednej z funkcji
parsery typów klasy Configuration
do analizowania danych na części.
Ten fragment kodu z oprogramowania sprzęgającego samouczka używa parametru
getMultiValue
metody pobierania listy nazw repozytoriów GitHub:
Wykonaj przemierzanie wykresu
Zastąp
getIds()
do pobierania identyfikatorów i wartości hash dla wszystkich rekordów w repozytorium.
Metoda getIds()
akceptuje punkt kontrolny. Punkt kontrolny jest używany do wznawiania
indeksowania konkretnego elementu, jeśli ten proces zostanie przerwany.
Następnie zastąp
getDoc()
do obsługi każdego elementu w kolejce indeksowania Cloud Search.
Przekazuj identyfikatory elementów i wartości skrótu
Zastąp
getIds()
do pobrania identyfikatorów produktów i powiązanych z nimi wartości skrótu treści z
z repozytorium. Pary identyfikatora i wartości skrótu są następnie pakowane w operacje push
do kolejki indeksowania w Cloud Search. Identyfikatory główne lub nadrzędne są zwykle
najpierw przekazywane są identyfikatory podrzędne, aż cała hierarchia elementów zostanie
przetworzono.
Metoda getIds()
akceptuje punkt kontrolny reprezentujący ostatni element, który ma zostać
. Za pomocą punktu kontrolnego można wznowić indeksowanie określonego elementu, który powinien
proces może zostać przerwany. W przypadku każdego elementu w repozytorium wykonaj te
kroki metody getIds()
:
- Pobierz z repozytorium każdy identyfikator elementu i powiązaną wartość skrótu.
- Umieść każdą parę identyfikatora i wartości skrótu w
PushItems
. - Połącz każde źródło
PushItems
w iterator zwrócony przez funkcję MetodagetIds()
. Pamiętaj, że funkcjagetIds()
zwraca błądCheckpointCloseableIterable
. czyli iteracjęApiOperation
każdy obiekt reprezentujący żądanie API wykonane naRepositoryDoc
, na przykład przesyłając elementy do kolejki.
Poniższy fragment kodu pokazuje, jak uzyskać identyfikator i wartość skrótu każdego produktu oraz
wstaw je do
PushItems
PushItems
to
Żądanie ApiOperation
dotyczące przekazania elementu do kolejki indeksowania w Cloud Search.
Fragment kodu poniżej pokazuje, jak używać parametru
PushItems.Builder
, aby spakować identyfikatory i wartości skrótu w pojedynczym przekazie push
ApiOperation
Elementy są przekazywane do kolejki indeksowania w Cloud Search w celu dalszego przetwarzania.
Pobieranie i obsługa każdego elementu
Zastąp
getDoc()
do obsługi każdego elementu w kolejce indeksowania w Cloud Search.
Element może być nowy, zmodyfikowany, niezmieniony lub nie może już istnieć w źródle
z repozytorium. Pobierz i zindeksuj każdy nowy lub zmodyfikowany element. Usuń elementy
z indeksu, którego już nie ma w repozytorium źródłowym.
Metoda getDoc()
akceptuje element z indeksowania Cloud Search
Kolejka. W przypadku każdego elementu w kolejce wykonaj te czynności
Metoda getDoc()
:
Sprawdź, czy identyfikator elementu znajduje się w kolejce indeksowania w Cloud Search z repozytorium. Jeśli nie, usuń ten element z indeksu. Jeśli element istnieje, przejdź do następnego kroku.
Zmieniony indeks lub nowe elementy:
- Ustaw uprawnienia.
- Ustaw metadane zindeksowanego elementu.
- Połącz metadane i element w jeden możliwy do zindeksowania
RepositoryDoc
- Umieść identyfikatory podrzędne w kolejce indeksowania w Cloud Search w celu dalszego przetworzenia.
- Zwrot
RepositoryDoc
.
Obsługa usuniętych elementów
Ten fragment kodu pokazuje, jak sprawdzić, czy element znajduje się w indeksie a nie usuwa.
Ustawianie uprawnień elementu
Twoje repozytorium używa listy kontroli dostępu (ACL) do identyfikowania użytkowników lub grupy, które mają dostęp do elementu. Lista kontroli dostępu (ACL) to lista identyfikatorów grup lub użytkowników którzy mają dostęp do danego elementu.
Musisz zduplikować listę kontroli dostępu (ACL) używaną przez Twoje repozytorium, aby mieć pewność, że tylko tych użytkowników użytkownik z dostępem do elementu może zobaczyć go w wynikach wyszukiwania. Podczas indeksowania elementu musi być uwzględniona lista kontroli dostępu (ACL), aby usługa Google Cloud Search miała informacje potrzebne do zapewnienia odpowiedniego poziomu dostępu. elementu.
Content Connector SDK udostępnia bogaty zestaw klas i metod ACL, aby modelowanie list kontroli dostępu w większości repozytoriów. Musisz przeanalizować listę ACL dla każdego elementu w i utworzyć odpowiednią listę kontroli dostępu dla Google Cloud Search, indeksuj element. Jeśli lista kontroli dostępu repozytorium obejmuje takie elementy jak lista kontroli dostępu (ACL) dziedziczenie, modelowanie, że ACL może być trudne. Więcej informacji o Google Listy ACL Cloud Search: patrz Listy kontroli dostępu (ACL) w Google Cloud Search
Uwaga: interfejs Cloud Search Indexing API obsługuje listy kontroli dostępu (ACL) w jednej domenie. Nie
obsługi list ACL dla wielu domen. Użyj
Acl.Builder
klasy dostępu do poszczególnych elementów za pomocą list kontroli dostępu. Poniższy fragment kodu został pobrany
z pełnej próby przemierzania, umożliwia
wszyscy użytkownicy lub „podmioty zabezpieczeń”
(getCustomerPrincipal()
)
być „czytelnikami” wszystkich elementów
(.setReaders()
)
podczas wyszukiwania.
Aby prawidłowo modelować listy kontroli dostępu w repozytorium, musisz znać listy kontroli dostępu. Dla: możesz na przykład indeksować pliki w systemie plików, Wykorzystuje model dziedziczenia, w którym foldery podrzędne dziedziczą uprawnienia. z folderów nadrzędnych. Dziedziczenie ACL w modelowaniu wymaga dodatkowych informacji poruszone w Listy kontroli dostępu (ACL) w Google Cloud Search
Ustawianie metadanych elementu
Metadane są przechowywane w obiekcie Item
. Aby utworzyć Item
, potrzebujesz
musi zawierać co najmniej identyfikator unikalnego ciągu znaków, typ elementu, listę kontroli dostępu, adres URL i wersję elementu.
Poniższy fragment kodu pokazuje, jak utworzyć Item
za pomocą
IndexingItemBuilder
.
klasę pomocniczą.
Tworzenie elementu możliwego do indeksowania
Po ustawieniu metadanych elementu możesz utworzyć plik
za pomocą atrybutu
RepositoryDoc.Builder
Przykład poniżej pokazuje, jak utworzyć pojedynczy element możliwy do zindeksowania.
RepositoryDoc
to typ funkcji ApiOperation
, który wykonuje działanie
Prośba o IndexingService.indexItem()
.
Możesz też użyć usługi
setRequestMode()
funkcji
RepositoryDoc.Builder
klasa identyfikująca żądanie indeksowania jako ASYNCHRONOUS
lub SYNCHRONOUS
:
ASYNCHRONOUS
- Tryb asynchroniczny wydłuża czas oczekiwania na indeksowanie i udostępnia obsługuje duży limit przepustowości żądań indeksowania. Obecny tryb asynchroniczny zalecane w przypadku początkowego indeksowania (zapełniania) całego repozytorium.
SYNCHRONOUS
- Tryb synchroniczny skraca czas oczekiwania na indeksowanie i wyświetla,
uwzględnia ograniczony limit przepustowości. Obecny tryb synchroniczny:
jest zalecany w przypadku indeksowania aktualizacji i zmian w repozytorium. Jeśli
nieokreślona, domyślny tryb żądania to
SYNCHRONOUS
.
Umieść identyfikatory podrzędne w kolejce indeksowania w Cloud Search
Fragment kodu poniżej pokazuje, jak dołączyć identyfikatory podrzędne dla parametru obecnie przetwarza element nadrzędny, do kolejki przetwarzania. Te identyfikatory są przetwarzane po zindeksowaniu elementu nadrzędnego.
Następne kroki
Oto kilka kolejnych kroków, które możesz podjąć:
- (Opcjonalnie) Zaimplementuj
close()
do zwolnienia zasobów przed wyłączeniem. - (Opcjonalnie) Utwórz oprogramowanie sprzęgające tożsamości za pomocą pakietu Identity Connector SDK.
Tworzenie oprogramowania sprzęgającego treści za pomocą interfejsu API REST
W poniższych sekcjach dowiesz się, jak utworzyć oprogramowanie sprzęgające treści za pomocą API typu REST.
Określ strategię przemierzania
Główną funkcją łącznika treści jest przemierzanie repozytorium indeksowanie jej danych. Musisz wdrożyć strategię przemierzania opartą na układ danych w repozytorium. Poniżej podano 3 typowe opcje przemierzania strategie:
- Strategia pełnego przemierzania
Strategia pełnego przemierzania skanuje całe repozytorium i ślepo wykonuje indeksowanie każdego elementu. Ta strategia jest często stosowana, gdy masz małe repozytorium i możesz sobie pozwolić na koszty związane z pełnym przemierzaniem przy każdym indeksowaniu.
Ta strategia przemierzania jest odpowiednia dla małych repozytoriów zawierających głównie statyczne, niehierarchiczne. Możesz też użyć tej strategii przemierzania gdy wykrywanie zmian jest trudne lub nieobsługiwane przez repozytorium.
- Strategia przemierzania listy
Strategia przemierzania listy skanuje całe repozytorium, w tym wszystkie obiekty podrzędne węzłów, które określają stan każdego elementu. Następnie łączy się przez chwilę i indeksuje tylko te elementy, które są nowe lub zostały zaktualizowane od ostatniego indeksowanie. Strategia ta jest zwykle wykorzystywana do zwiększania przyrostu wartości aktualizacji istniejącego indeksu (bez konieczności wykonywania pełnego przemierzania podczas aktualizowania indeksu).
Ta strategia przemierzania jest odpowiednia, gdy wykrywanie zmian jest trudne lub nie jest obsługiwane przez repozytorium, masz dane niehierarchiczne i jesteś pracy z bardzo dużymi zbiorami danych.
- Omijanie wykresu
Strategia przemierzania wykresu skanuje cały węzeł nadrzędny, określając stan każdego elementu. Następnie oprogramowanie sprzęgające korzysta z drugiego przebiegu i przeprowadza indeksowanie tylko elementy w węźle głównym są nowe lub zostały zaktualizowane od ostatniego indeksowania. Na koniec oprogramowanie sprzęgające przekazuje wszelkie identyfikatory podrzędne, a następnie indeksuje elementy w węzłach podrzędnych. nowe lub zaktualizowane. Łącznik rekurencyjnie we wszystkich węzłach podrzędnych, dopóki nie zareagujesz na wszystkie elementy. Takie przemierzanie jest zwykle używany w repozytoriach hierarchicznych, w których lista wszystkich identyfikatorów nie jest praktyczny.
Ta strategia jest odpowiednia, jeśli masz dane hierarchiczne, które muszą np. katalogów serii lub stron internetowych.
.
Wdróż strategię przemierzania i indeksuj elementy
W Cloud Search każdy możliwy do zindeksowania element jest nazywany elementem za pomocą Cloud Search API. Elementem może być plik, folder, wiersz w pliku CSV lub rekordzie bazy danych.
Po zarejestrowaniu schematu możesz wypełnić indeks według:
(Opcjonalnie) Przy użyciu:
items.upload
aby przesyłać do indeksowania pliki większe niż 100 KiB. W przypadku mniejszych plików umieść treść jako inlineContent za pomocąitems.index
.(Opcjonalnie) Przy użyciu:
media.upload
aby przesłać pliki multimedialne do zindeksowania.Użycie tagu
items.index
do zindeksowania elementu. Jeśli na przykład schemat wykorzystuje definicję obiektu z filmu , czyli żądanie indeksowania pojedynczego elementu element będzie wyglądał tak:{ "name": "datasource/<data_source_id>/items/titanic", "acl": { "readers": [ { "gsuitePrincipal": { "gsuiteDomain": true } } ] }, "metadata": { "title": "Titanic", "viewUrl": "http://www.imdb.com/title/tt2234155/?ref_=nv_sr_1", "objectType": "movie" }, "structuredData": { "object": { "properties": [ { "name": "movieTitle", "textValues": { "values": [ "Titanic" ] } }, { "name": "releaseDate", "dateValues": { "values": [ { "year": 1997, "month": 12, "day": 19 } ] } }, { "name": "actorName", "textValues": { "values": [ "Leonardo DiCaprio", "Kate Winslet", "Billy Zane" ] } }, { "name": "genre", "enumValues": { "values": [ "Drama", "Action" ] } }, { "name": "userRating", "integerValues": { "values": [ 8 ] } }, { "name": "mpaaRating", "textValues": { "values": [ "PG-13" ] } }, { "name": "duration", "textValues": { "values": [ "3 h 14 min" ] } } ] } }, "content": { "inlineContent": "A seventeen-year-old aristocrat falls in love with a kind but poor artist aboard the luxurious, ill-fated R.M.S. Titanic.", "contentFormat": "TEXT" }, "version": "01", "itemType": "CONTENT_ITEM" }
(Opcjonalnie) Przy użyciu items.get. umożliwia weryfikację produktu został zindeksowany.
Aby wykonać pełne przemierzanie, konieczne było okresowe ponowne indeksowanie całej z repozytorium. Aby wykonać przemierzanie listy lub wykresu, musisz zaimplementować funkcję w którym możesz obsługiwać zmiany w repozytorium.
Obsługa zmian w repozytorium
Możesz okresowo gromadzić i indeksować każdy element z repozytorium, aby wykonać pełnego indeksowania. Chociaż skutecznie dba o aktualność indeksu, pełny indeksowanie może być kosztowne w przypadku większych lub hierarchicznych repozytoriów.
Zamiast co określony czas korzystać z wywołań indeksu do indeksowania całego repozytorium, można też używać kolejki indeksowania w Google Cloud jako mechanizm śledzenia zmian i indeksowania tylko tych elementów, została zmieniona. Za pomocą items.push żądań przesłania elementów do kolejki na potrzeby późniejszego odpytywania i aktualizowania. Więcej informacji na temat kolejki indeksowania w Google Cloud znajdziesz na stronie Kolejka indeksowania Google Cloud.
Więcej informacji o interfejsie Google Cloud Search API znajdziesz tutaj: Cloud Search API.