Wdrażanie wtyczki Apache Nutch Indexer

Możesz skonfigurować Google Cloud Search tak, aby serwował treści internetowe Twoim użytkownikom. W tym celu wdróż wtyczkę indeksu Google Cloud Search dla Apache Nutch – robota typu open source.

Po rozpoczęciu indeksowania internetu Apache Nutch przeszukuje internet i korzystając z wtyczki do indeksowania przesyła oryginalne wersje binarne (lub tekstowe) treści dokumentu do interfejsu Google Cloud Search API. Interfejs API indeksowania indeksuje treść i wyświetla wyniki użytkownikom.

Ważne informacje

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 do indeksowania zawiera tę wersję Nutch.
  • Na komputerze, na którym będzie uruchomiona wtyczka Java JRE 1.8, zainstalowana jest
Typy dokumentów Apache Tika Obsługiwane formaty dokumentów Apache Tika 1.18

Wdrażanie wtyczki indeksowania

Poniższe kroki opisują, jak zainstalować wtyczkę indeksującego i skonfigurować jej komponenty pod kątem indeksowania określonych adresów URL i zwracania wyników do Cloud Search.

Wymagania wstępne

Zanim wdrożysz wtyczkę Cloud Search Apache Nutch do indeksowania, zbierz informacje wymagane do połączenia Google Cloud Search ze źródłem danych:

Krok 1. Skompiluj i zainstaluj oprogramowanie wtyczek oraz Apache Nutch

  1. Sklonuj repozytorium wtyczek narzędzia indeksującego z GitHuba.

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

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

    $ mvn package

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

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

  5. Wyodrębnij do folderu plik target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (utworzony w kroku 2). Skopiuj folder plugins/indexer-google-cloudsearch do folderu wtyczek instalacyjnych 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ć poniższe parametry, które są niezbędne do uzyskania dostępu do źródła danych Google Cloud Search.

lokalizacji, 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 do indeksowania.
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 we wtyczce 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, które kontrolują działanie wtyczki indeksującego. Możesz skonfigurować sposób, w jaki wtyczka przekazuje dane do interfejsu Cloud Search API (defaultAcl.* i batch.*). Możesz też skonfigurować sposób, w jaki wtyczka indeksującego wypełnia metadane i uporządkowane dane.

Opisy tych parametrów znajdziesz w artykule Parametry oprogramowania sprzęgającego dostarczone przez Google.

Krok 3. Skonfiguruj Apache Nutch

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

    lokalizacji, Parametr
    Wtyczka zawiera plugin.includes = text

    To pole jest wymagane. Lista wtyczek, których chcesz używać. Musi ona zawierać przynajmniej:

    • indeks-podstawowy
    • indeks-więcej
    • indexer-google-cloudsearch
    conf/nutch-default.xml podaje wartość domyślną dla tej właściwości, ale musisz też dodać do niej indexer-google-cloudsearch ręcznie.
    Nazwy metatagów metatags.names = text

    Opcjonalnie. Rozdzielona przecinkami lista tagów, które mapują właściwości w schemacie odpowiedniego źródła danych. Więcej informacji o konfigurowaniu metatagów w Apache Nutch znajdziesz w artykule metatagi analizy składni.

    Ten 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 następujące parametry:

    lokalizacji, Parametr
    Ścieżka do pliku konfiguracji Google Cloud Search gcs.config.file = path

    To pole jest 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 indeksującego przekazuje treść dokumentów do interfejsu Google Cloud Search API. Prawidłowe wartości to:

    • raw: wtyczka indeksującego przekazuje oryginalną, nieprzekonwertowaną treść dokumentu.
    • text: wtyczka indeksującego przekazuje wyodrębnione treści tekstowe. Wartością domyślną jest raw.

Krok 4. Skonfiguruj indeksowanie internetu

Zanim rozpoczniesz indeksowanie sieci, skonfiguruj je tak, aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić w wynikach wyszukiwania. Ta sekcja zawiera omówienie informacji. Więcej informacji o konfigurowaniu indeksowania sieci znajdziesz w samouczku dotyczącym nowej usługi.

  1. Skonfiguruj początkowe adresy URL.

    Początkowe adresy URL określają, gdzie robot Apache Nutch rozpoczyna indeksowanie treści. Początkowe adresy URL powinny umożliwiać robotowi indeksującemu dotarcie do wszystkich treści, które chcesz objąć danym indeksowaniem za pomocą tych linków. Początkowe adresy URL są wymagane.

    Aby skonfigurować początkowe adresy URL:

    1. Zmień katalog roboczy na skrócony katalog instalacji:

      $ 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 wymień w nim adresy URL, podając po jednym adresie URL w wierszu.

  2. Skonfiguruj reguły obserwowania i nieprzestrzegania ich.

    Reguły dotyczące adresów URL określają, które adresy URL są indeksowane i uwzględniane w indeksie Google Cloud Search. Robot indeksujący sprawdza adresy URL pod kątem zgodności z regułami dotyczącymi adresów URL. Tylko adresy URL pasujące do tych reguł są skanowane i indeksowane.

    Reguły nieprzestrzegania wykluczają adresy URL z indeksowania i uwzględniania w indeksie Google Cloud Search. Jeśli adres URL zawiera wzorzec „Nie skanuj”, robot go nie będzie indeksować.

    Aby skonfigurować reguły dotyczące adresów URL „przestrzegaj” i „nie”:

    1. Zmień katalog roboczy na skrócony katalog instalacji:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Edytuj regułę conf/regex-urlfilter.txt, aby zmienić reguły obserwowania/nieobserwowania: \

      $ nano conf/regex-urlfilter.txt
    3. Wpisz wyrażenia regularne z prefiksem „+” lub „-”, aby śledzić wzorce adresów URL i rozszerzenia, których nie należy śledzić, tak jak w poniższych przykładach. Wyrażenia otwarte są dozwolone.

      # 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 brakuje parametru gcs.uploadFormat lub jest on ustawiony na wartość „raw”, musisz dodać argumenty „-addBinaryContent -base64”, aby przekazać je do polecenia nutch index. Te argumenty informują moduł Nutch Indexer, aby przy wywoływaniu wtyczki indeksującego uwzględniał zawartość plików binarną w Base64. Skrypt ./bin/crawl nie ma domyślnie tych argumentów.

    1. Otwórz skrypt crawl w aplikacji 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 sieci i prześlij treści

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

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

Dzienniki indeksowania są dostępne na wyjściu standardowym (terminal) lub w katalogu logs/. Aby kierować dane wyjściowe logowania lub uzyskać bardziej szczegółowe logowanie, edytuj conf/log4j.properties.