Możesz skonfigurować Google Cloud Search tak, aby udostępniać użytkownikom treści internetowe, wdrażając wtyczkę indeksującą Google Cloud Search dla Apache Nutch, czyli wyszukiwarki internetowej typu open source.
Gdy rozpoczniesz indeksowanie internetu, Apache Nutch będzie indeksować strony i używać wtyczki indeksującej do przesyłania oryginalnych binarnych (lub tekstowych) wersji treści dokumentów do interfejsu Google Cloud Search API. Interfejs Indexing API indeksuje treści i wyświetla wyniki użytkownikom.
Istotne kwestie
Wymagania systemowe
Wymagania systemowe | |
---|---|
System operacyjny | Tylko w systemie Linux:
|
Oprogramowanie |
|
Typy dokumentów Apache Tika | Formaty dokumentów obsługiwane przez Apache Tika 1.18 |
Wdrażanie wtyczki indeksującej
Poniżej znajdziesz instrukcje instalowania wtyczki indeksującej i konfigurowania jej komponentów w celu indeksowania określonych adresów URL i przesyłania wyników do Cloud Search.
Wymagania wstępne
Zanim wdrożysz wtyczkę indeksującą Apache Nutch Cloud Search, zbierz informacje wymagane do połączenia Google Cloud Search ze źródłem danych:
- Klucz prywatny Google Workspace (zawierający identyfikator konta usługi). Informacje o tym, jak uzyskać klucz prywatny, znajdziesz w artykule Konfigurowanie dostępu do interfejsu Google Cloud Search API.
- Identyfikator źródła danych Google Workspace. Informacje o tym, jak uzyskać identyfikator źródła danych, znajdziesz w artykule Dodawanie źródła danych do wyszukiwania.
Krok 1. Utwórz i zainstaluj oprogramowanie wtyczki oraz Apache Nutch
Sklonuj repozytorium wtyczki indeksującej z GitHuba.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Sprawdź żądaną wersję wtyczki indeksującej:
$ git checkout tags/v1-0.0.5
Utwórz wtyczkę indeksującą.
$ mvn package
Aby pominąć testy podczas tworzenia wtyczki indeksującej, użyj polecenia
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
(utworzony w kroku 2) do folderu. Skopiuj folderplugins/indexer-google-cloudsearch
do folderu instalacyjnego wtyczek Apache Nutch (apache-nutch-1.15/plugins
).
Krok 2. Skonfiguruj wtyczkę indeksującą
Aby skonfigurować wtyczkę indeksującą Apache Nutch, 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 indeksującej. |
Konto usługi | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wymagane. Plik klucza konta usługi Google Cloud Search utworzony przez administratora Google Workspace na potrzeby wtyczki indeksującej. |
Poniższy przykład przedstawia przykładowy plik konfiguracyjny z wymaganymi parametrami.
#
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
#
Plik konfiguracyjny może też zawierać inne parametry, które kontrolują działanie wtyczki indeksującej. Możesz skonfigurować sposób, w jaki wtyczka przesyła dane do interfejsu Cloud Search API, defaultAcl.*
i batch.*
. Możesz też skonfigurować sposób, w jaki wtyczka indeksująca wypełnia metadane i dane strukturalne.
Opisy tych parametrów znajdziesz w sekcji Parametry łącznika dostarczonego przez Google.
Krok 3. Skonfiguruj Apache Nutch
Otwórz
conf/nutch-site.xml
i dodaj te parametry:Ustawienie Parametr Wtyczka zawiera plugin.includes = text
Wymagany. Lista wtyczek do użycia. Musi zawierać co najmniej:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xml
podaje 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 rozdzielonych przecinkami, które są mapowane na właściwości w schemacie odpowiedniego źródła danych. Więcej informacji o konfigurowaniu Apache Nutch pod kątem metatagów znajdziesz w artykule Nutch-parse metatags (w języku angielskim).
Poniższy przykład pokazuje wymaganą modyfikację
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
Wymagany. Pełna (bezwzględna) ścieżka do pliku konfiguracji Google Cloud Search.
Format przesyłania gcs.uploadFormat = text
Opcjonalnie. Format, w którym wtyczka indeksująca przesyła treść dokumentu do interfejsu API indeksatora Google Cloud Search. Prawidłowe wartości to:
raw
: wtyczka indeksująca przesyła oryginalną, nieprzekonwertowaną zawartość dokumentu.text
: wtyczka indeksująca przesyła wyodrębnioną treść tekstową. (wartością domyślną jestraw
);
Krok 4. Skonfiguruj indeksowanie internetu
Zanim rozpoczniesz indeksowanie witryny, skonfiguruj je tak, aby obejmowało tylko informacje, które Twoja organizacja chce udostępniać w wynikach wyszukiwania. Ta sekcja zawiera omówienie. Więcej informacji o konfigurowaniu indeksowania witryny znajdziesz w samouczku dotyczącym Nutch.
Skonfiguruj początkowe adresy URL.
Adresy URL startowe określają, od jakich stron internetowych ma zacząć indeksowanie treści robot sieciowy Apache Nutch. Adresy URL startowe powinny umożliwiać robotowi indeksującemu dotarcie do wszystkich treści, które chcesz uwzględnić w danym indeksowaniu, poprzez klikanie linków. Adresy URL rozpoczęcia są wymagane.
Aby skonfigurować początkowe adresy URL:
Zmień katalog roboczy na katalog instalacyjny 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ść w nim adresy URL, po jednym w wierszu.
Skonfiguruj reguły dotyczące śledzenia i niestosowania śledzenia.
Reguły adresów URL określają, które adresy URL są indeksowane i uwzględniane w indeksie Google Cloud Search. Robot internetowy sprawdza adresy URL pod kątem reguł dotyczących adresów URL. Skanowane i indeksowane są tylko adresy URL, które pasują do tych reguł.
Reguły „nie śledź” wykluczają adresy URL z indeksowania i uwzględniania w indeksie Google Cloud Search. Jeśli adres URL zawiera wzorzec, którego nie należy indeksować, robot indeksujący nie będzie go indeksować.
Aby skonfigurować reguły dotyczące adresów URL, które mają być obserwowane i nieobserwowane:
Zmień katalog roboczy na katalog instalacyjny Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
Edytuj
conf/regex-urlfilter.txt
, aby zmienić reguły dotyczące śledzenia i niestosowania się do nich:$ nano conf/regex-urlfilter.txt
Wpisz wyrażenia regularne z prefiksem „+” lub „-” w celu śledzenia lub pomijania wzorców adresów URL i rozszerzeń, jak pokazano w przykładach poniżej. Dozwolone są wyrażenia otwarte.
# 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ł indeksujący Nutch, aby podczas wywoływania wtyczki indeksującej uwzględniał treści binarne w formacie Base64. Skrypt ./bin/crawl nie ma domyślnie tych argumentów.- Otwórz skrypt
crawl
wapache-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 witryny i przesyłanie treści
Po zainstalowaniu i skonfigurowaniu wtyczki indeksującej możesz uruchomić ją samodzielnie w trybie lokalnym. Użyj skryptów z ./bin
, aby wykonać zadanie indeksowania lub poszczególne polecenia Nutch.
W przykładzie poniżej założono, ż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 (terminalu) lub w logs/
katalogu. Aby skierować dane wyjściowe rejestrowania lub uzyskać bardziej szczegółowe rejestrowanie, edytuj conf/log4j.properties
.