Aby udostępniać użytkownikom treści internetowe, możesz skonfigurować Google Cloud Search, wdrażając wtyczkę indeksującą Google Cloud Search dla Apache Nutch, czyli indeksatora stron internetowych open source.
Gdy rozpoczynasz indeksowanie sieci, Apache Nutch indeksuje sieć i korzysta z wtyczki indeksującego, aby przesłać oryginalne wersje binarne (lub tekstowe) treści dokumentu do interfejsu Google Cloud Search indeksującego API. Interfejs indeksowania indeksuje treści i przekazuje wyniki użytkownikom.
Ważne kwestie
Wymagania systemowe
Wymagania systemowe | |
---|---|
System operacyjny | Tylko w systemie Linux:
|
Oprogramowanie |
|
Typy dokumentów Apache Tika | Obsługiwane formaty dokumentów w Apache Tika 1.18 |
Wdrażanie wtyczki indeksera
Z tych instrukcji dowiesz się, jak zainstalować wtyczkę indeksującą i skonfigurować jej komponenty, aby indeksować określone adresy URL i zwracać wyniki do Cloud Search.
Wymagania wstępne
Zanim wdrożysz wtyczkę indeksera Apache Nutch w Cloud Search, zdobądź informacje potrzebne do połączenia Google Cloud Search ze źródłem danych:
- klucz prywatny Google Workspace (zawierający identyfikator konta usługi). Informacje o uzyskiwaniu klucza prywatnego znajdziesz w artykule Konfigurowanie dostępu do interfejsu Google Cloud Search API.
- Identyfikator źródła danych Google Workspace. Informacje o uzyskiwaniu identyfikatora źródła danych znajdziesz w artykule Dodaj źródło danych do wyszukiwania.
Krok 1. Utwórz i zainstaluj oprogramowanie wtyczki i Apache Nutch
Sklonuj repozytorium wtyczki indeksera z GitHuba.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Sprawdź żądaną wersję wtyczki indeksatora:
$ git checkout tags/v1-0.0.5
Utwórz wtyczkę indeksatora.
$ mvn package
Aby pominąć testy podczas kompilowania wtyczki indeksatora, użyj opcji
mvn package -DskipTests
.Pobierz Apache Nutch 1.15 i postępuj zgodnie z instrukcjami instalacji Apache Nutch.
Wyodrębnij
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(utworzoną w kroku 2) do folderu. Skopiuj folderplugins/indexer-google-cloudsearch
do folderu z wtyczkami Apache Nutch (apache-nutch-1.15/plugins
).
Krok 2. Skonfiguruj wtyczkę indeksatora
Aby skonfigurować wtyczkę Apache Nutch Indexer, utwórz plik o nazwie plugin-configuration.properties
.
Plik konfiguracji musi zawierać te parametry, które są niezbędne do uzyskania dostępu do źródła danych Google Cloud Search.
Ustawienie | Parametr |
Identyfikator źródła danych | api.sourceId = 1234567890abcdef
Wymagane. Identyfikator źródła Google Cloud Search skonfigurowany przez administratora Google Workspace dla wtyczki indeksera. |
Konto usługi | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wymagane. Plik klucza konta usługi Google Cloud Search, który administrator Google Workspace utworzył dla ułatwień dostępu w pluginie indeksera. |
Poniższy przykład pokazuje przykładowy plik konfiguracji z wymaganymi parametrami.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
Plik konfiguracji może też zawierać inne parametry, które kontrolują działanie wtyczki indeksatora. Możesz skonfigurować sposób przesyłania danych przez wtyczkę do Cloud Search API, defaultAcl.*
i batch.*
. Możesz też skonfigurować sposób wypełniania metadanych i uporządkowanych danych przez wtyczkę indeksującą.
Opis tych parametrów znajdziesz w sekcji Parametry złącza dostarczanego przez Google.
Krok 3. Skonfiguruj Apache Nutch
Otwórz
conf/nutch-site.xml
i dodaj te parametry:Ustawienie Parametr Wtyczka zawiera plugin.includes = text
Wymagane. Lista wtyczek do użycia. Musi zawierać co najmniej:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
zawiera domyślną wartość tej właściwości, ale musisz też ręcznie dodać do niejindexer-google-cloudsearch
.nazwy metatagów, metatags.names = text
Opcjonalnie: Lista tagów rozdzielona przecinkami, które są mapowane na właściwości w schemacie odpowiedniego źródła danych. Więcej informacji o konfigurowaniu Apache Nutch do obsługi metadanych znajdziesz w artykule Nutch-parse metatags.
Poniższy przykład pokazuje wymaganą modyfikację funkcji
nutch-site.xml
:<property> <name>plugin.includes</name> <value>protocol-(http|httpclient)|urlfilter-regex|index-(basic|more| metadata)|query-(basic|site|url|lang)|indexer-google-cloudsearch|nutch-extensionpoints|parse-(text|html|msexcel|msword|mspowerpoint|pdf|metatags)|summary-basic|scoring-opic|urlnormalizer-(pass|regex|basic)|parse-(html|tika|metatags)|index-(basic|anchor|more|metadata)</value> </property>
Otwórz
conf/index-writers.xml
i dodaj tę sekcję:<writer id="indexer_google_cloud_search_1" class="org.apache.nutch.indexwriter.gcs.GoogleCloudSearchIndexWriter"> <parameters> <param name="gcs.config.file" value="path/to/sdk-configuration.properties"/> </parameters> <mapping> <copy /> <rename /> <remove /> </mapping> </writer>
Sekcja <writer> zawiera te parametry:
Ustawienie Parametr Ścieżka do pliku konfiguracji Google Cloud Search gcs.config.file = path
Wymagane. Pełna (bezwzględna) ścieżka do pliku konfiguracji Google Cloud Search.
Format przesyłania gcs.uploadFormat = text
Opcjonalnie: Format, w którym wtyczka indeksera przesyła zawartość dokumentu do interfejsu Google Cloud Search Indexer API. Prawidłowe wartości to:
raw
: wtyczka indeksera przesyła oryginalną, nieprzetworzoną treść dokumentu.text
: wtyczka indeksatora przesyła wyodrębnione treści tekstowe. (wartością domyślną jestraw
);
Krok 4. Skonfiguruj indeksowanie
Zanim rozpoczniesz indeksowanie, skonfiguruj indeksowanie tak, aby obejmowało ono tylko informacje, które Twoja organizacja chce udostępniać w wynikach wyszukiwania. Z tej sekcji dowiesz się, jak skonfigurować indeksowanie. Więcej informacji o konfigurowaniu indeksowania znajdziesz w samouctniku o Nutch.
Skonfiguruj początkowe adresy URL.
Adresy URL początkowe określają, od którego miejsca robot Apache Nutch ma rozpocząć indeksowanie treści. Adresy URL początkowe powinny umożliwić robotowi indeksującemu dotarcie do wszystkich treści, które chcesz uwzględnić w konkretnym indeksowaniu, przez klikanie linków. Wymagany jest adres URL początkowy.
Aby skonfigurować początkowe adresy URL:
Zmień katalog roboczy na katalog instalacji nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Utwórz katalog dla adresów URL:
$ mkdir urls
Utwórz plik o nazwie
seed.txt
i umieścić w nim listę adresów URL (po jednym adresie URL w wierszu).
Skonfiguruj reguły follow i no-follow.
Reguły śledzenia adresów URL określają, które adresy URL są indeksowane i uwzględniane w indeksie Google Cloud Search. Robot sprawdza adresy URL pod kątem reguł dotyczących śledzenia adresów URL. Skanowane i indeksowane są tylko adresy URL, które pasują do tych reguł.
Reguły „nie podążaj za odnośnikiem” wykluczają adresy URL z robota i indeksu Google Cloud Search. Jeśli adres URL zawiera wzór „nie indeksuj”, robot Google nie indeksuje go.
Aby skonfigurować reguły odnośników z atrybutem follow i nofollow:
Zmień katalog roboczy na katalog instalacji nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Kliknij Edytuj
conf/regex-urlfilter.txt
, aby zmienić reguły śledzenia/nie śledzenia: \$ nano conf/regex-urlfilter.txt
Wpisz wyrażenia regularne z prefiksem „+” lub „-”, aby stosować reguły i rozszerzenia adresów URL z opcją follow lub nofollow, jak w podanych niżej przykładach. Dozwolone są nieograniczone wyrażenia.
# skip file extensions -\.(gif|GIF|jpg|JPG|png|PNG|ico) # skip protocols (file: ftp: and mailto:) -^(file|ftp|mailto): # allow urls starting with https://support.google.com/gsa/ +^https://support.google.com/gsa/ # accept anything else # (commented out due to the single url-prefix allowed above) #+.
Edytuj skrypt indeksowania.
Jeśli parametr
gcs.uploadFormat
jest nieobecny lub ma wartość „raw”, musisz dodać argumenty „-addBinaryContent -base64
”, aby przekazać je do polecenianutch index
. Te argumenty informują moduł indeksera Nutch, aby podczas wywoływania wtyczki indeksera uwzględniał zawartość binarną w formacie Base64. Skrypt ./bin/crawl nie zawiera domyślnie tych argumentów.- Otwórz skrypt
crawl
w usłudzeapache-nutch-1.15/bin
. Dodaj do skryptu opcje
-addBinaryContent -base64
, jak w tym przykładzie:if $INDEXFLAG; then echo "Indexing $SEGMENT to index" __bin_nutch index $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb -addBinaryContent -base64 -linkdb "$CRAWL_PATH"/linkdb "$CRAWL_PATH"/segments/$SEGMENT echo "Cleaning up index if possible" __bin_nutch clean $JAVA_PROPERTIES "$CRAWL_PATH"/crawldb else echo "Skipping indexing ..."
- Otwórz skrypt
Krok 5. Rozpocznij indeksowanie i przesyłanie treści
Po zainstalowaniu i skonfigurowaniu wtyczki indeksera możesz ją uruchomić w trybie lokalnym. Aby wykonać zadanie indeksowania lub poszczególne polecenia Nutch, użyj skryptów z ./bin
.
W tym przykładzie zakładamy, że wymagane komponenty znajdują się w katalogu lokalnym. Uruchom Nutch za pomocą tego polecenia z katalogu apache-nutch-1.15
:
$ bin/crawl -i -s urls/ crawl-test/ 5
Logi indeksowania są dostępne w standardowym wyjściu (terminal) lub w katalogu logs/
. Aby kierować dane wyjściowe do rejestrowania lub uzyskać bardziej szczegółowe rejestrowanie, edytuj conf/log4j.properties
.