Wdrażanie wtyczki Apache Nutch Indexer

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:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64-bitowy)
Oprogramowanie
  • Apache Nutch w wersji 1.15. Oprogramowanie wtyczki indeksującej zawiera tę wersję Nutch.
  • Zainstalowane na komputerze, na którym będzie działać wtyczka indeksująca, środowisko Java JRE 1.8
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:

Krok 1. Utwórz i zainstaluj oprogramowanie wtyczki oraz Apache Nutch

  1. Sklonuj repozytorium wtyczki indeksującej z GitHuba.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Sprawdź żądaną wersję wtyczki indeksującej:

    $ git checkout tags/v1-0.0.5
  3. Utwórz wtyczkę indeksującą.

    $ mvn package

    Aby pominąć testy podczas tworzenia wtyczki indeksującej, użyj polecenia mvn package -DskipTests.

  4. Pobierz Apache Nutch 1.15 i postępuj zgodnie z instrukcjami instalacji Apache Nutch.

  5. Wyodrębnij target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (utworzony w kroku 2) do folderu. Skopiuj folder plugins/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

  1. 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 niej indexer-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>
    
  2. 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ą jest raw);

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.

  1. 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:

    1. Zmień katalog roboczy na katalog instalacyjny Nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Utwórz katalog dla adresów URL:

      $ mkdir urls
    3. Utwórz plik o nazwie seed.txt i umieść w nim adresy URL, po jednym w wierszu.

  2. 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:

    1. Zmień katalog roboczy na katalog instalacyjny Nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Edytuj conf/regex-urlfilter.txt, aby zmienić reguły dotyczące śledzenia i niestosowania się do nich:

      $ nano conf/regex-urlfilter.txt
    3. 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)
      #+.
      
  3. Edytuj skrypt indeksowania.

    Jeśli parametr gcs.uploadFormat jest nieobecny lub ma wartość „raw”, musisz dodać argumenty „-addBinaryContent -base64”, aby przekazać je do polecenia nutch 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.

    1. Otwórz skrypt crawlapache-nutch-1.15/bin.
    2. 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 ..."
      

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.