Możesz skonfigurować Google Cloud Search tak, aby serwował treści internetowe Twoim użytkownikom. W tym celu wdróż wtyczkę indeksu Google Cloud Search dla Apache Nutch – robota typu open source.
Po rozpoczęciu indeksowania internetu Apache Nutch przeszukuje internet i korzystając z wtyczki do indeksowania przesyła oryginalne wersje binarne (lub tekstowe) treści dokumentu do interfejsu Google Cloud Search API. Interfejs API indeksowania indeksuje treść i wyświetla wyniki użytkownikom.
Ważne informacje
Wymagania systemowe
Wymagania systemowe | |
---|---|
System operacyjny | Tylko w systemie Linux:
|
Oprogramowanie |
|
Typy dokumentów Apache Tika | Obsługiwane formaty dokumentów Apache Tika 1.18 |
Wdrażanie wtyczki indeksowania
Poniższe kroki opisują, jak zainstalować wtyczkę indeksującego i skonfigurować jej komponenty pod kątem indeksowania określonych adresów URL i zwracania wyników do Cloud Search.
Wymagania wstępne
Zanim wdrożysz wtyczkę Cloud Search Apache Nutch do indeksowania, zbierz informacje wymagane do połączenia Google Cloud Search ze źródłem danych:
- Klucz prywatny Google Workspace (który zawiera identyfikator konta usługi). Informacje o uzyskiwaniu klucza prywatnego znajdziesz w sekcji Konfigurowanie dostępu do interfejsu Google Cloud Search API.
- Identyfikator źródła danych Google Workspace. Informacje na temat uzyskiwania identyfikatora źródła danych znajdziesz w artykule Dodawanie źródła danych do wyszukiwania.
Krok 1. Skompiluj i zainstaluj oprogramowanie wtyczek oraz Apache Nutch
Sklonuj repozytorium wtyczek narzędzia indeksującego z GitHuba.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Sprawdź odpowiednią wersję wtyczki indeksującego:
$ git checkout tags/v1-0.0.5
Utwórz wtyczkę indeksującego.
$ mvn package
Aby pominąć testy podczas tworzenia wtyczki indeksującego, użyj
mvn package -DskipTests
.Pobierz Apache Nutch 1.15 i postępuj zgodnie z instrukcjami instalacji Apache Nutch.
Wyodrębnij do folderu plik
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(utworzony w kroku 2). Skopiuj folderplugins/indexer-google-cloudsearch
do folderu wtyczek instalacyjnych Apache Nutch (apache-nutch-1.15/plugins
).
Krok 2. Skonfiguruj wtyczkę indeksującego
Aby skonfigurować wtyczkę Apache Nutch Indexer, utwórz plik o nazwie plugin-configuration.properties
.
Plik konfiguracji musi zawierać poniższe parametry, które są niezbędne do uzyskania dostępu do źródła danych Google Cloud Search.
lokalizacji, | Parametr |
Identyfikator źródła danych | api.sourceId = 1234567890abcdef
Wymagane. Identyfikator źródła Google Cloud Search skonfigurowany przez administratora Google Workspace na potrzeby wtyczki do indeksowania. |
Konto usługi | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wymagane. Plik klucza konta usługi Google Cloud Search utworzony przez administratora Google Workspace na potrzeby ułatwień dostępu we wtyczce indeksującego. |
Poniżej znajduje się 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 indeksującego. Możesz skonfigurować sposób, w jaki wtyczka przekazuje dane do interfejsu Cloud Search API (defaultAcl.*
i batch.*
). Możesz też skonfigurować sposób, w jaki wtyczka indeksującego wypełnia metadane i uporządkowane dane.
Opisy tych parametrów znajdziesz w artykule Parametry oprogramowania sprzęgającego dostarczone przez Google.
Krok 3. Skonfiguruj Apache Nutch
Otwórz plik
conf/nutch-site.xml
i dodaj te parametry:lokalizacji, Parametr Wtyczka zawiera plugin.includes = text
To pole jest wymagane. Lista wtyczek, których chcesz używać. Musi ona zawierać przynajmniej:
- indeks-podstawowy
- indeks-więcej
- indexer-google-cloudsearch
conf/nutch-default.xml
podaje wartość domyślną dla tej właściwości, ale musisz też dodać do niejindexer-google-cloudsearch
ręcznie.Nazwy metatagów metatags.names = text
Opcjonalnie. Rozdzielona przecinkami lista tagów, które mapują właściwości w schemacie odpowiedniego źródła danych. Więcej informacji o konfigurowaniu metatagów w Apache Nutch znajdziesz w artykule metatagi analizy składni.
Ten 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 następujące parametry:
lokalizacji, Parametr Ścieżka do pliku konfiguracji Google Cloud Search gcs.config.file = path
To pole jest 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 indeksującego przekazuje treść dokumentów do interfejsu Google Cloud Search API. Prawidłowe wartości to:
raw
: wtyczka indeksującego przekazuje oryginalną, nieprzekonwertowaną treść dokumentu.text
: wtyczka indeksującego przekazuje wyodrębnione treści tekstowe. Wartością domyślną jestraw
.
Krok 4. Skonfiguruj indeksowanie internetu
Zanim rozpoczniesz indeksowanie sieci, skonfiguruj je tak, aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić w wynikach wyszukiwania. Ta sekcja zawiera omówienie informacji. Więcej informacji o konfigurowaniu indeksowania sieci znajdziesz w samouczku dotyczącym nowej usługi.
Skonfiguruj początkowe adresy URL.
Początkowe adresy URL określają, gdzie robot Apache Nutch rozpoczyna indeksowanie treści. Początkowe adresy URL powinny umożliwiać robotowi indeksującemu dotarcie do wszystkich treści, które chcesz objąć danym indeksowaniem za pomocą tych linków. Początkowe adresy URL są wymagane.
Aby skonfigurować początkowe adresy URL:
Zmień katalog roboczy na skrócony katalog instalacji:
$ cd ~/nutch/apache-nutch-X.Y/
Utwórz katalog dla adresów URL:
$ mkdir urls
Utwórz plik o nazwie
seed.txt
i wymień w nim adresy URL, podając po jednym adresie URL w wierszu.
Skonfiguruj reguły obserwowania i nieprzestrzegania ich.
Reguły dotyczące adresów URL określają, które adresy URL są indeksowane i uwzględniane w indeksie Google Cloud Search. Robot indeksujący sprawdza adresy URL pod kątem zgodności z regułami dotyczącymi adresów URL. Tylko adresy URL pasujące do tych reguł są skanowane i indeksowane.
Reguły nieprzestrzegania wykluczają adresy URL z indeksowania i uwzględniania w indeksie Google Cloud Search. Jeśli adres URL zawiera wzorzec „Nie skanuj”, robot go nie będzie indeksować.
Aby skonfigurować reguły dotyczące adresów URL „przestrzegaj” i „nie”:
Zmień katalog roboczy na skrócony katalog instalacji:
$ cd ~/nutch/apache-nutch-X.Y/
Edytuj regułę
conf/regex-urlfilter.txt
, aby zmienić reguły obserwowania/nieobserwowania: \$ nano conf/regex-urlfilter.txt
Wpisz wyrażenia regularne z prefiksem „+” lub „-”, aby śledzić wzorce adresów URL i rozszerzenia, których nie należy śledzić, tak jak w poniższych przykładach. Wyrażenia otwarte są dozwolone.
# 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 brakuje parametru
gcs.uploadFormat
lub jest on ustawiony na wartość „raw”, musisz dodać argumenty „-addBinaryContent -base64
”, aby przekazać je do polecenianutch index
. Te argumenty informują moduł Nutch Indexer, aby przy wywoływaniu wtyczki indeksującego uwzględniał zawartość plików binarną w Base64. Skrypt ./bin/crawl nie ma domyślnie tych argumentów.- Otwórz skrypt
crawl
w aplikacjiapache-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 sieci i prześlij treści
Po zainstalowaniu i skonfigurowaniu wtyczki indeksującego możesz ją uruchomić samodzielnie w trybie lokalnym. Aby wykonać zadanie indeksowania lub poszczególne polecenia Nutch, użyj skryptów ze strony ./bin
.
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
Dzienniki indeksowania są dostępne na wyjściu standardowym (terminal) lub w katalogu logs/
. Aby kierować dane wyjściowe logowania lub uzyskać bardziej szczegółowe logowanie, edytuj conf/log4j.properties
.