Wdrażanie wtyczki Apache Nutch Indexer

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:
  • 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.
  • Na komputerze, na którym uruchomi się wtyczka indeksującego, zainstalowano środowisko Java JRE 1.8
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:

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

  1. Sklonuj repozytorium wtyczki 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ącą.

    $ 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 plik target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (wbudowany w kroku 2) do folderu. Skopiuj folder plugins/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 określać poniższe 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 wtyczka przekazuje 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 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:

    Ustawienie Parametr
    Wtyczka zawiera plugin.includes = text

    Wymagane. Lista wtyczek, których należy używać. Musi ono zawierać przynajmniej:

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

    Opcjonalnie. Rozdzielona przecinkami lista tagów, które są mapowane na właściwości w schemacie odpowiedniego źródła danych. Więcej informacji o konfigurowaniu Apache Nutch do metatagów znajdziesz w artykule Analizuj metatagi.

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

    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ą jest raw.

Krok 4. Skonfiguruj indeksowanie internetu

Przed rozpoczęciem indeksowania internetu skonfiguruj indeksowanie, tak aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić w wynikach wyszukiwania. Ta sekcja zawiera ogólny opis. Więcej informacji o konfigurowaniu indeksowania internetu znajdziesz w samouczku na temat języka niemieckiego.

  1. Skonfiguruj początkowe adresy URL.

    Początkowe adresy URL określają miejsce, w którym robot internetowy Apache Nutch rozpoczyna indeksowanie Twoich treści. Początkowe adresy URL powinny umożliwić robotowi indeksującemu dotarcie do wszystkich treści, które chcesz uwzględnić w danym indeksowaniu, korzystając z linków. Początkowe adresy URL są wymagane.

    Aby skonfigurować początkowe adresy URL:

    1. Zmień katalog roboczy na katalog instalacyjny aplikacji Nuch:

      $ 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 (po jednym w wierszu).

  2. 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 zgodności z tymi regułami. 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 indeksujący nie będzie go indeksować.

    Aby skonfigurować reguły przestrzegania i nieprzestrzegania adresów URL:

    1. Zmień katalog roboczy na katalog instalacyjny aplikacji Nuch:

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

      $ nano conf/regex-urlfilter.txt
    3. Wpisz wyrażenia regularne z prefiksem „+” lub „-”, który pozwoli śledzić wzorce i rozszerzenia adresów URL typu „nie należy śledzić” zgodnie z poniższymi przykładami. 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 brakuje parametru gcs.uploadFormat lub ma on wartość „nieprzetworzony”, musisz dodać argumenty „-addBinaryContent -base64”, aby przekazać je do polecenia nutch index. Argumenty te informują moduł indeksujący Nutch, aby po wywołaniu wtyczki indeksującego uwzględnił treści binarne w Base64. Skrypt ./bin/crawl domyślnie nie ma tych argumentów.

    1. Otwórz skrypt crawl w narzędziu apache-nutch-1.15/bin.
    2. 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 ..."
      

Krok 5. Rozpocznij indeksowanie witryny i prześlij treści

Po zainstalowaniu i skonfigurowaniu wtyczki indeksującego możesz ją uruchomić samoczynnie w trybie lokalnym. Użyj skryptów z ./bin do wykonania zadania indeksowania lub poszczególnych poleceń Nutch.

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

Dzienniki indeksowania są dostępne w standardowych danych wyjściowych (terminalu) lub w katalogu logs/. Aby przekierować dane wyjściowe logowania lub uzyskać bardziej szczegółowe logowanie, zmień conf/log4j.properties.