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 zawierać następujące 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 przesyła 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 na stronie Parametry oprogramowania sprzęgającego udostępnione 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
    Parametr conf/nutch-default.xml zawiera wartość domyślną, ale indexer-google-cloudsearch trzeba do niej dodać ręcznie.
    Nazwy metatagów metatags.names = text

    Opcjonalnie: Rozdzielona przecinkami lista tagów, które są mapowane na właściwości w schemat odpowiedniego źródła danych. Więcej informacji o konfigurowaniu Apache Nutch do metatagów znajdziesz na stronie Metatagi z analizą nuc

    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>
    

    <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, aby obejmowało tylko informacje, które Twoja organizacja chce udostępnić w wynikach wyszukiwania wyników. Oto jej omówienie: aby dowiedzieć się więcej o konfigurowaniu indeksowania internetu, otwórz Samouczek szuflad.

  1. Skonfiguruj początkowe adresy URL.

    Początkowe adresy URL określają miejsce, w którym robot Apache Nutch rozpoczyna indeksowanie treści. Początkowe adresy URL powinny umożliwić robotowi indeksującemu dotarcie do wszystkich treści, które mają które chcesz uwzględnić w konkretnym 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 postępuj zgodnie z regułami adresów URL. 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 w celu jego indeksowania.

    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 ze znakiem „+” lub „-” wzorcami i rozszerzeniami adresów URL, które mają być śledzone / uniemożliwiające śledzenie, jak widać w polu z poniższych przykładów. 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ść „raw”, musisz dodać „-addBinaryContent -base64” – argumenty przekazywane do funkcji nutch index . Te argumenty powodują, że moduł indeksujący Nutch uwzględnia treści binarne w Base64 podczas wywoływania wtyczki indeksującego. Skrypt ./bin/crawl nie zawiera te argumenty.

    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ć w trybie lokalnym. Użyj skryptów z witryny ./bin, aby wykonać zadanie indeksowania lub poszczególnych poleceń Nutch.

W tym przykładzie założono, że wymagane komponenty znajdują się w regionie katalogu. 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/. Do bezpośrednio kontrolować dane wyjściowe, a dla bardziej szczegółowego conf/log4j.properties