Wdrażanie wtyczki Apache Nutch Indexer

Aby udostępniać użytkownikom treści internetowe, możesz skonfigurować Google Cloud Search, wdrażając wtyczkę indeksującą Google Cloud Search dla Apache Nutch, czyli indeksatora stron internetowych open source.

Gdy rozpoczynasz indeksowanie sieci, Apache Nutch indeksuje sieć i korzysta z wtyczki indeksującego, aby przesłać oryginalne wersje binarne (lub tekstowe) treści dokumentu do interfejsu Google Cloud Search indeksującego API. Interfejs indeksowania indeksuje treści i przekazuje wyniki użytkownikom.

Ważne 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 indeksera zawiera tę wersję Nutch.
  • Java JRE 1.8 zainstalowana na komputerze, na którym będzie działać wtyczka indeksatora.
Typy dokumentów Apache Tika Obsługiwane formaty dokumentów w Apache Tika 1.18

Wdrażanie wtyczki indeksera

Z tych instrukcji dowiesz się, jak zainstalować wtyczkę indeksującą i skonfigurować jej komponenty, aby indeksować określone adresy URL i zwracać wyniki do Cloud Search.

Wymagania wstępne

Zanim wdrożysz wtyczkę indeksera Apache Nutch w Cloud Search, zdobądź informacje potrzebne do połączenia Google Cloud Search ze źródłem danych:

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

  1. Sklonuj repozytorium wtyczki indeksera z GitHuba.

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

    $ git checkout tags/v1-0.0.5
  3. Utwórz wtyczkę indeksatora.

    $ mvn package

    Aby pominąć testy podczas kompilowania wtyczki indeksatora, użyj opcji 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 (utworzoną w kroku 2) do folderu. Skopiuj folder plugins/indexer-google-cloudsearch do folderu z wtyczkami Apache Nutch (apache-nutch-1.15/plugins).

Krok 2. Skonfiguruj wtyczkę indeksatora

Aby skonfigurować wtyczkę Apache Nutch Indexer, 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 indeksera.
Konto usługi api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Wymagane. Plik klucza konta usługi Google Cloud Search, który administrator Google Workspace utworzył dla ułatwień dostępu w pluginie indeksera.

Poniższy przykład pokazuje 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 indeksatora. Możesz skonfigurować sposób przesyłania danych przez wtyczkę do Cloud Search API, defaultAcl.* i batch.*. Możesz też skonfigurować sposób wypełniania metadanych i uporządkowanych danych przez wtyczkę indeksującą.

Opis tych parametrów znajdziesz w sekcji Parametry złącza dostarczanego 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

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

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml zawiera 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 rozdzielona przecinkami, które są mapowane na właściwości w schemacie odpowiedniego źródła danych. Więcej informacji o konfigurowaniu Apache Nutch do obsługi metadanych znajdziesz w artykule Nutch-parse metatags.

    Poniższy przykład pokazuje wymaganą modyfikację funkcji 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

    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 indeksera przesyła zawartość dokumentu do interfejsu Google Cloud Search Indexer API. Prawidłowe wartości to:

    • raw: wtyczka indeksera przesyła oryginalną, nieprzetworzoną treść dokumentu.
    • text: wtyczka indeksatora przesyła wyodrębnione treści tekstowe. (wartością domyślną jest raw);

Krok 4. Skonfiguruj indeksowanie

Zanim rozpoczniesz indeksowanie, skonfiguruj indeksowanie tak, aby obejmowało ono tylko informacje, które Twoja organizacja chce udostępniać w wynikach wyszukiwania. Z tej sekcji dowiesz się, jak skonfigurować indeksowanie. Więcej informacji o konfigurowaniu indeksowania znajdziesz w samouctniku o Nutch.

  1. Skonfiguruj początkowe adresy URL.

    Adresy URL początkowe określają, od którego miejsca robot Apache Nutch ma rozpocząć indeksowanie treści. Adresy URL początkowe powinny umożliwić robotowi indeksującemu dotarcie do wszystkich treści, które chcesz uwzględnić w konkretnym indeksowaniu, przez klikanie linków. Wymagany jest adres URL początkowy.

    Aby skonfigurować początkowe adresy URL:

    1. Zmień katalog roboczy na katalog instalacji 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ścić w nim listę adresów URL (po jednym adresie URL w wierszu).

  2. Skonfiguruj reguły follow i no-follow.

    Reguły śledzenia 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 reguł dotyczących śledzenia adresów URL. Skanowane i indeksowane są tylko adresy URL, które pasują do tych reguł.

    Reguły „nie podążaj za odnośnikiem” wykluczają adresy URL z robota i indeksu Google Cloud Search. Jeśli adres URL zawiera wzór „nie indeksuj”, robot Google nie indeksuje go.

    Aby skonfigurować reguły odnośników z atrybutem follow i nofollow:

    1. Zmień katalog roboczy na katalog instalacji nutch:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Kliknij Edytuj conf/regex-urlfilter.txt, aby zmienić reguły śledzenia/nie śledzenia: \

      $ nano conf/regex-urlfilter.txt
    3. Wpisz wyrażenia regularne z prefiksem „+” lub „-”, aby stosować reguły i rozszerzenia adresów URL z opcją follow lub nofollow, jak w podanych niżej przykładach. Dozwolone są nieograniczone wyrażenia.

      # 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ł indeksera Nutch, aby podczas wywoływania wtyczki indeksera uwzględniał zawartość binarną w formacie Base64. Skrypt ./bin/crawl nie zawiera domyślnie tych argumentów.

    1. Otwórz skrypt crawl w usłudze apache-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 i przesyłanie treści

Po zainstalowaniu i skonfigurowaniu wtyczki indeksera możesz ją uruchomić w trybie lokalnym. Aby wykonać zadanie indeksowania lub poszczególne polecenia Nutch, użyj skryptów z ./bin.

W tym przykładzie zakładamy, ż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 (terminal) lub w katalogu logs/. Aby kierować dane wyjściowe do rejestrowania lub uzyskać bardziej szczegółowe rejestrowanie, edytuj conf/log4j.properties.