Możesz skonfigurować Google Cloud Search tak, aby udostępniać użytkownikom treści internetowe, wdrażając wtyczkę indeksującą Cloud Search dla Apache Nutch, czyli open source'owego robota internetowego.
Po rozpoczęciu indeksowania sieci Apache Nutch przeszukuje internet 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 Cloud Search API indeksuje treści i wyświetla wyniki użytkownikom.
Istotne kwestie
Zanim wdrożysz wtyczkę indeksującą, zapoznaj się z tymi kwestiami.
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 indeksującej
W tych krokach opisujemy, jak zainstalować wtyczkę indeksującą i skonfigurować jej komponenty, aby przeszukiwać adresy URL i zwracać wyniki do Cloud Search.
Wymagania wstępne
Zanim wdrożysz wtyczkę indeksującą, zbierz informacje wymagane do połączenia 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 Cloud Search API.
- Identyfikator źródła danych Google Workspace. Informacje o uzyskiwaniu identyfikatora ź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 z GitHub repozytorium wtyczki indeksującej.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
Sprawdź wersję wtyczki indeksującej, której potrzebujesz:
$ git checkout tags/v1-0.0.5
Utwórz wtyczkę indeksującą.
$ mvn package
Aby pominąć testy podczas tworzenia wtyczki, 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.zipdo folderu. Skopiuj folderplugins/indexer-google-cloudsearchdo folderu Apache Nutchplugins(apache-nutch-1.15/plugins).
Krok 2. Skonfiguruj wtyczkę indeksującą
Aby skonfigurować wtyczkę, utwórz plik o nazwie plugin-configuration.properties.
Aby uzyskać dostęp do źródła danych Cloud Search, plik konfiguracji musi zawierać te parametry:
| Ustawienie | Parametr |
| Identyfikator źródła danych | api.sourceId = 1234567890abcdef
Wymagane. Identyfikator źródła Cloud Search, który administrator Google Workspace skonfigurował dla wtyczki indeksującej. |
| Konto usługi | api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wymagane. Plik klucza konta usługi Cloud Search, który administrator Google Workspace utworzył na potrzeby wtyczki indeksującej. |
Poniżej znajdziesz przykładowy plik konfiguracyjny:
# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json
Plik konfiguracyjny może też zawierać parametry, które kontrolują działanie wtyczki, np. sposób, w jaki wtyczka przesyła dane do interfejsu Cloud Search API, oraz sposób wypełniania metadanych i danych strukturalnych. Opisy tych parametrów znajdziesz w sekcji Parametry łącznika dostarczonego przez Google.
Krok 3. Skonfiguruj Apache Nutch
Otwórz
conf/nutch-site.xmli dodaj te parametry:Ustawienie Parametr Wtyczka zawiera plugin.includes = textWymagane. Lista wtyczek do użycia. Musi zawierać co najmniej:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlpodaje wartość domyślną, ale musisz do niej ręcznie dodaćindexer-google-cloudsearch.Nazwy metatagów metatags.names = textOpcjonalnie. Rozdzielana przecinkami lista tagów, które są mapowane na właściwości w odpowiednim schemacie źródła danych. Więcej informacji znajdziesz w artykule Nutch-parse metatags.
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.xmli 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 Cloud Search gcs.config.file = pathWymagane. Pełna (bezwzględna) ścieżka do pliku konfiguracji Cloud Search.
Format przesyłania gcs.uploadFormat = textOpcjonalnie. Format, w jakim wtyczka przesyła zawartość dokumentu do interfejsu Cloud Search API. Prawidłowe wartości to:
raw: promuje oryginalne, nieprzekonwertowane treści.text: przesyła wyodrębnione treści tekstowe. Wartość domyślna toraw.
Krok 4. Skonfiguruj indeksowanie sieci
Zanim rozpoczniesz indeksowanie witryny, skonfiguruj je tak, aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić. Więcej informacji znajdziesz w samouczku dotyczącym Nutch.
Skonfiguruj początkowe adresy URL.
Adresy URL rozpoczęcia określają, od którego miejsca robot indeksujący zaczyna indeksowanie treści. Robot musi mieć możliwość dotarcia do wszystkich treści, które chcesz uwzględnić, poprzez klikanie linków.
Aby skonfigurować początkowe adresy URL:
- Przejdź do katalogu instalacyjnego Nutch:
$ cd ~/nutch/apache-nutch-X.Y/
- Utwórz katalog adresów URL:
$ mkdir urls
- Utwórz plik o nazwie
seed.txti wpisz w nim po jednym adresie URL w wierszu.
- Przejdź do katalogu instalacyjnego Nutch:
Skonfiguruj reguły dotyczące śledzenia i niestosowania śledzenia.
Reguły dotyczące adresów URL określają, które adresy URL są indeksowane przez robota. Reguły „nie śledź” wykluczają adresy URL ze skanowania.
Aby skonfigurować te reguły:
- Przejdź do katalogu instalacyjnego Nutch.
- Edytuj:
conf/regex-urlfilter.txt$ nano conf/regex-urlfilter.txt
Wpisz wyrażenia regularne z prefiksem „+” lub „-”:
# 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 #+.
Edytuj skrypt indeksowania.
Jeśli parametr
gcs.uploadFormatnie występuje lub ma wartość „raw”, musisz dodać argumenty-addBinaryContent -base64do polecenianutch index. Te argumenty informują moduł indeksujący Nutch, że ma uwzględniać treści binarne w formacie Base64.- Otwórz skrypt
crawlwapache-nutch-1.15/bin. Dodaj opcje zgodnie z tym przykładem:
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 skonfigurowaniu wtyczki indeksującej możesz uruchomić ją w trybie lokalnym. Użyj skryptów z ./bin, aby wykonać zadanie indeksowania.
W przykładzie poniżej założono, że komponenty znajdują się w katalogu lokalnym. Uruchom Nutch
z katalogu apache-nutch-1.15:
$ bin/crawl -i -s urls/ crawl-test/ 5
Dzienniki indeksowania są dostępne w terminalu lub w katalogu logs/. Aby skierować dane wyjściowe logowania, edytuj conf/log4j.properties.