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ą Cloud Search dla Apache Nutch, czyli robota indeksującego typu open source.

Gdy rozpoczniesz indeksowanie stron internetowych, Apache Nutch będzie je skanować i używać wtyczki indeksującej do przesyłania oryginalnych wersji binarnych (lub tekstowych) treści dokumentów do interfejsu Google Cloud Search API. Interfejs Cloud Search API indeksuje treści i udostępnia wyniki użytkownikom.

Istotne kwestie

Zanim wdrożysz wtyczkę indeksującą, zapoznaj się z tymi kwestiami.

Wymagania systemowe

Wymagania systemowe
System operacyjny Tylko 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.
  • Java JRE 1.8 zainstalowana na komputerze, na którym będzie działać wtyczka indeksująca .
Typy dokumentów Apache Tika Formaty dokumentów obsługiwane przez Apache Tika 1.18

Wdrażanie wtyczki indeksującej

Z tych instrukcji dowiesz się, jak zainstalować wtyczkę indeksującą i skonfigurować jej komponenty, aby indeksować 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:

Krok 1. Skompiluj i zainstaluj oprogramowanie wtyczki oraz Apache Nutch

  1. Sklonuj z GitHuba repozytorium wtyczki indeksującej.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Sprawdź wersję wtyczki indeksującej, której chcesz użyć:

    $ git checkout tags/v1-0.0.5
  3. Skompiluj wtyczkę indeksującą.

    $ mvn package

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

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

  5. Rozpakuj plik target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip do folderu. Skopiuj folder plugins/indexer-google-cloudsearch do folderu Apache Nutch plugins (apache-nutch-1.15/plugins).

Krok 2. Skonfiguruj wtyczkę indeksującą

Aby skonfigurować wtyczkę, utwórz plik o nazwie plugin-configuration.properties. Plik konfiguracji musi zawierać te parametry, aby można było uzyskać dostęp do źródła danych Cloud Search.

Ustawienie Parametr
Identyfikator źródła danych api.sourceId = 1234567890abcdef
Wymagane. Identyfikator źródła Cloud Search skonfigurowany przez administratora Google Workspace na potrzeby wtyczki indeksującej.
Konto usługi api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wymagane. Plik klucza konta usługi Cloud Search utworzony przez administratora Google Workspace na potrzeby dostępu do wtyczki indeksującej.

Poniżej znajdziesz przykładowy plik konfiguracji:

# data source access
api.sourceId=1234567890abcdef
api.serviceAccountPrivateKeyFile=./PrivateKey.json

Plik konfiguracji 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, w jaki wypełnia metadane i uporządkowane dane. Opisy tych parametrów znajdziesz w artykule Parametry oprogramowania sprzęgającego dostarczonego przez Google.

Krok 3. Skonfiguruj Apache Nutch

  1. Otwórz plik conf/nutch-site.xml i dodaj te parametry:

    Ustawienie Parametr
    Wtyczka zawiera plugin.includes = text

    Wymagane. Lista wtyczek do użycia. Musi zawierać co najmniej:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml zawiera wartość domyślną, ale musisz ręcznie dodać indexer-google-cloudsearch do niego.
    Nazwy metatagów metatags.names = text

    Opcjonalnie. Lista tagów rozdzielona przecinkami, 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żej znajdziesz przykład wymaganej modyfikacji pliku 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 plik 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 Cloud Search gcs.config.file = path

    Wymagane. Pełna (bezwzględna) ścieżka do pliku konfiguracji Cloud Search.

    Format przesyłania gcs.uploadFormat = text

    Opcjonalnie. Format, w którym wtyczka przesyła treści dokumentów do Cloud Search API. Prawidłowe wartości:

    • raw: przesyła oryginalne, nieprzekonwertowane treści.
    • text: przesyła wyodrębnione treści tekstowe. Domyślnie jest raw.

Krok 4. Skonfiguruj indeksowanie stron internetowych

Zanim rozpoczniesz indeksowanie stron internetowych, skonfiguruj je tak, aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić. Więcej informacji znajdziesz w samouczku Nutch.

  1. Skonfiguruj początkowe adresy URL.

    Początkowe adresy URL określają, od których stron robot indeksujący ma rozpocząć 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:

    1. Przejdź do katalogu instalacyjnego Nutch:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. Utwórz katalog na adresy URL:
      $ mkdir urls
    3. Utwórz plik o nazwie seed.txt i wpisz w nim po jednym adresie URL w wierszu.
  2. Skonfiguruj reguły dotyczące klikania i nieklikania linków.

    Reguły dotyczące klikania linków określają, które adresy URL mają być indeksowane przez robota. Reguły dotyczące nieklikania linków wykluczają adresy URL z indeksowania.

    Aby skonfigurować te reguły:

    1. Przejdź do katalogu instalacyjnego Nutch.
    2. Edytuj plik conf/regex-urlfilter.txt:
      $ nano conf/regex-urlfilter.txt
    3. 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
      #+.
      
  3. Edytuj skrypt indeksowania.

    Jeśli parametr gcs.uploadFormat nie jest ustawiony lub ma wartość „raw”, musisz dodać argumenty -addBinaryContent -base64 do polecenia nutch index. Te argumenty informują moduł Nutch Indexer, aby uwzględniał treści binarne w formacie Base64.

    1. Otwórz skrypt crawl w katalogu apache-nutch-1.15/bin.
    2. Dodaj opcje, jak pokazano 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 stron internetowych i przesyłanie treści

Po skonfigurowaniu wtyczki indeksującej możesz uruchomić ją w trybie lokalnym. Aby wykonać zadanie indeksowania, użyj skryptów z katalogu ./bin.

W tym przykładzie zakłada się, że komponenty znajdują się w katalogu lokalnym. Uruchom Nutch z katalogu apache-nutch-1.15:

$ bin/crawl -i -s urls/ crawl-test/ 5

Logi indeksowania są dostępne w terminalu lub w katalogu logs/. Aby skierować dane wyjściowe logowania, edytuj plik conf/log4j.properties.