Możesz skonfigurować usługę Google Cloud Search tak, aby serwowała użytkownikom treści z internetu, wdrażając wtyczkę indeksującego Google Cloud Search dla Apache Nutch – robota internetowego typu open source.
Po uruchomieniu indeksowania internetu Apache Nutch skanuje internet i używa wtyczki indeksującej, aby przesłać oryginalne binarne (lub tekstowe) wersje treści dokumentu do interfejsu Google Cloud Search index API. Interfejs API indeksowania indeksuje treść i udostępnia wyniki użytkownikom.
Ważne informacje
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ącego
Poniżej znajdziesz instrukcje instalowania wtyczki indeksującego i konfigurowania jej komponentów pod kątem indeksowania określonych adresów URL i zwracania wyników do Cloud Search.
Wymagania wstępne
Zanim wdrożysz wtyczkę indeksującego Cloud Search Apache Nutch, 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 na temat uzyskiwania klucza prywatnego znajdziesz tutaj: Skonfiguruj dostęp do interfejsu Google Cloud Search API.
- Identyfikator źródła danych Google Workspace. Informacje o tym, jak uzyskać identyfikator źródła danych, znajdziesz na stronie Dodaj źródło danych do wyszukiwania.
Krok 1. Utwórz i zainstaluj oprogramowanie wtyczki oraz Apache Nutch
Sklonuj repozytorium wtyczki 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ącą.
$ 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 plik
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip
(wbudowany w kroku 2) do folderu. Skopiuj folderplugins/indexer-google-cloudsearch
do folderu instalacyjnego 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ć następujące 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 na potrzeby wtyczki indeksującego. |
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 przez wtyczkę 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 sterujące zachowaniem wtyczki indeksującego. Możesz skonfigurować sposób, w jaki
przesyła dane do interfejsów Cloud Search API oraz defaultAcl.*
i batch.*
. Możesz też skonfigurować sposób wypełniania metadanych i uporządkowanych danych przez wtyczkę indeksującą.
Opisy tych parametrów znajdziesz na stronie Parametry oprogramowania sprzęgającego udostępnione przez Google.
Krok 3. Skonfiguruj Apache Nutch
Otwórz plik
conf/nutch-site.xml
i dodaj te parametry:Ustawienie Parametr Wtyczka zawiera plugin.includes = text
Wymagane. Lista wtyczek, których należy używać. Musi ono zawierać przynajmniej:
- index-basic
- Indeksuj więcej
- indexer-google-cloudsearch
conf/nutch-default.xml
zawiera wartość domyślną, aleindexer-google-cloudsearch
trzeba do niej dodać ręcznie.Nazwy metatagów metatags.names = text
Opcjonalnie: Rozdzielona przecinkami lista tagów, które są mapowane na właściwości w schemat odpowiedniego źródła danych. Więcej informacji o konfigurowaniu Apache Nutch do metatagów znajdziesz na stronie Metatagi z analizą nuc
Ten przykład pokazuje wymaganą modyfikację w elemencie
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>
<writer> zawiera następujące parametry:
Ustawienie Parametr Ścieżka do pliku konfiguracji Google Cloud Search gcs.config.file = path
Wymagane. Pełna ścieżka (bezwzględna) do pliku konfiguracji Google Cloud Search.
Format przesłanego pliku gcs.uploadFormat = text
Opcjonalnie: Format, w którym wtyczka indeksującego przekazuje treść dokumentu do interfejsu API indeksującego Google Cloud Search. Prawidłowe wartości to:
raw
: wtyczka indeksująca przekazuje oryginalną, nieprzekonwertowaną treść dokumentu.text
: wtyczka indeksująca przekazuje wyodrębnione treści tekstowe. Wartością domyślną jestraw
.
Krok 4. Skonfiguruj indeksowanie internetu
Przed rozpoczęciem indeksowania internetu skonfiguruj indeksowanie, aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić w wynikach wyszukiwania wyników. Oto jej omówienie: aby dowiedzieć się więcej o konfigurowaniu indeksowania internetu, otwórz Samouczek szuflad.
Skonfiguruj początkowe adresy URL.
Początkowe adresy URL określają miejsce, w którym robot Apache Nutch rozpoczyna indeksowanie treści. Początkowe adresy URL powinny umożliwić robotowi indeksującemu dotarcie do wszystkich treści, które mają które chcesz uwzględnić w konkretnym indeksowaniu, korzystając z linków. Początkowe adresy URL są wymagane.
Aby skonfigurować początkowe adresy URL:
Zmień katalog roboczy na katalog instalacyjny aplikacji Nuch:
$ 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 (po jednym w wierszu).
Skonfiguruj reguły „przestrzegania” i „nie przestrzegaj”.
Reguły dotyczące 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 postępuj zgodnie z regułami adresów URL. Tylko adresy URL pasujące do tych reguł są pobierane i indeksowane.
Reguły nieprzestrzegania wykluczają adresy URL z indeksowania i uwzględniania w indeksie Google Cloud Search. Jeśli adres URL zawiera wzorzec uniemożliwiający indeksowanie, robot w celu jego indeksowania.
Aby skonfigurować reguły przestrzegania i nieprzestrzegania adresów URL:
Zmień katalog roboczy na katalog instalacyjny aplikacji Nuch:
$ cd ~/nutch/apache-nutch-X.Y/
Edytuj element
conf/regex-urlfilter.txt
, aby zmienić reguły obserwowania/nieprzestrzegania: \$ nano conf/regex-urlfilter.txt
Wpisz wyrażenia regularne ze znakiem „+” lub „-” wzorcami i rozszerzeniami adresów URL, które mają być śledzone / uniemożliwiające śledzenie, jak widać w polu z poniższych przykładów. 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 brakuje parametru
gcs.uploadFormat
lub ma on wartość „raw”, musisz dodać „-addBinaryContent -base64
” – argumenty przekazywane do funkcjinutch index
. Te argumenty powodują, że moduł indeksujący Nutch uwzględnia treści binarne w Base64 podczas wywoływania wtyczki indeksującego. Skrypt ./bin/crawl nie zawiera te argumenty.- Otwórz skrypt
crawl
w narzędziuapache-nutch-1.15/bin
. Dodaj do skryptu opcje
-addBinaryContent -base64
, tak 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 prześlij treści
Po zainstalowaniu i skonfigurowaniu wtyczki indeksującego możesz ją uruchomić
w trybie lokalnym. Użyj skryptów z witryny ./bin
, aby wykonać zadanie indeksowania lub
poszczególnych poleceń Nutch.
W tym przykładzie założono, że wymagane komponenty znajdują się w regionie
katalogu. 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 w standardowych danych wyjściowych (terminalu) lub w katalogu logs/
. Do
bezpośrednio kontrolować dane wyjściowe, a dla bardziej szczegółowego
conf/log4j.properties