Apache Nutch Indexer Eklentisi Dağıtma

Açık kaynaklı bir web tarayıcısı olan Apache Nutch için Cloud Search dizine ekleme eklentisini dağıtarak Google Cloud Search'ü kullanıcılarınıza web içeriği sunacak şekilde ayarlayabilirsiniz.

Web taramasına başladığınızda Apache Nutch, web'i tarar ve belge içeriğinin orijinal ikili (veya metin) sürümlerini Google Cloud Search API'ye yüklemek için dizin oluşturucu eklentisini kullanır. Cloud Search API, içeriği dizine ekler ve sonuçları kullanıcılarınıza sunar.

Dikkat edilecek önemli noktalar

Dizin oluşturucu eklentisini dağıtmadan önce aşağıdaki hususları göz önünde bulundurun.

Sistem gereksinimleri

Sistem gereksinimleri
İşletim sistemi Yalnızca Linux:
  • Ubuntu
  • Red Hat Enterprise Linux 5.0
  • SUSE Enterprise Linux 10 (64 bit)
Yazılım
  • Apache Nutch sürümü 1.15. Dizin oluşturucu eklenti yazılımı, Nutch'un bu sürümünü içerir.
  • Dizin oluşturucu eklentisinin çalıştırılacağı bilgisayarda Java JRE 1.8'in yüklü olması
Apache Tika belge türleri Apache Tika 1.18 desteklenen belge biçimleri

Dizin oluşturucu eklentisini dağıtma

Bu adımlarda, dizin oluşturucu eklentisinin nasıl yükleneceği ve bileşenlerinin URL'leri tarayıp Cloud Search'e sonuç döndürecek şekilde nasıl yapılandırılacağı açıklanmaktadır.

Ön koşullar

Dizin oluşturucu eklentisini dağıtmadan önce Cloud Search ile veri kaynağını bağlamak için gereken bilgileri toplayın:

1. adım: Eklenti yazılımını ve Apache Nutch'ı oluşturup yükleyin

  1. Indexer eklenti deposunu GitHub'dan klonlayın.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. İstediğiniz dizin oluşturucu eklentisinin sürümünü kontrol edin:

    $ git checkout tags/v1-0.0.5
  3. Dizin oluşturucu eklentisini oluşturun.

    $ mvn package

    Eklentiyi oluştururken testleri atlamak için mvn package -DskipTests kullanın.

  4. Apache Nutch 1.15'i indirip Apache Nutch yükleme talimatlarını uygulayın.

  5. target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip dosyasını bir klasöre çıkarın. plugins/indexer-google-cloudsearch klasörünü Apache Nutch plugins klasörüne (apache-nutch-1.15/plugins) kopyalayın.

2. adım: Dizin oluşturucu eklentisini yapılandırın

Eklentiyi yapılandırmak için plugin-configuration.properties adlı bir dosya oluşturun. Yapılandırma dosyası, Cloud Search veri kaynağına erişmek için aşağıdaki parametreleri belirtmelidir.

Ayar Parametre
Veri kaynağı kimliği api.sourceId = 1234567890abcdef
Zorunlu. Google Workspace yöneticisinin dizine ekleme aracı eklentisi için ayarladığı Cloud Search kaynak kimliği.
Hizmet hesabı api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Zorunlu. Google Workspace yöneticisinin dizin oluşturucu eklentisinin erişilebilirliği için oluşturduğu Cloud Search hizmet hesabı anahtar dosyası.

Aşağıdaki örnekte örnek bir yapılandırma dosyası gösterilmektedir:

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

Yapılandırma dosyası, eklentinin davranışını kontrol eden parametreleri de içerebilir. Örneğin, eklentinin verileri Cloud Search API'ye nasıl aktardığı ve meta verileri ile yapılandırılmış verileri nasıl doldurduğu gibi. Bu parametrelerin açıklamaları için Google tarafından sağlanan bağlayıcı parametreleri bölümüne bakın.

3. adım: Apache Nutch'ı yapılandırın

  1. conf/nutch-site.xml bağlantısını açın ve aşağıdaki parametreleri ekleyin:

    Ayar Parametre
    Eklenti şunları içerir: plugin.includes = text

    Zorunlu. Kullanılacak eklentilerin listesi. Bu açıklama en az şunları içermelidir:

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml varsayılan bir değer sağlar ancak indexer-google-cloudsearch değerini manuel olarak eklemeniz gerekir.
    Meta etiket adları metatags.names = text

    İsteğe bağlı. İlgili veri kaynağı şemasındaki özelliklerle eşleşen virgülle ayrılmış etiket listesi. Daha fazla bilgi edinmek için Nutch-parse metatags başlıklı makaleyi inceleyin.

    Aşağıdaki örnekte, nutch-site.xml için gerekli değişiklik gösterilmektedir:

    <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. conf/index-writers.xml bağlantısını açın ve aşağıdaki bölümü ekleyin:

    <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> bölümü aşağıdaki parametreleri içerir:

    Ayar Parametre
    Cloud Search yapılandırma dosyasının yolu gcs.config.file = path

    Zorunlu. Cloud Search yapılandırma dosyasının tam (mutlak) yolu.

    Yükleme biçimi gcs.uploadFormat = text

    İsteğe bağlı. Eklentinin, belge içeriğini Cloud Search API'ye aktarmak için kullandığı biçim. Geçerli değerler şunlardır:

    • raw: Orijinal ve dönüştürülmemiş içerikleri gönderir.
    • text: Çıkarılan metin içeriğini gönderir. Varsayılan değer raw'dir.

4. adım: Web taramayı yapılandırın

Web taraması başlatmadan önce, yalnızca kuruluşunuzun kullanıma sunmak istediği bilgileri içerecek şekilde yapılandırın. Daha fazla bilgi için Nutch eğitimine bakın.

  1. Başlangıç URL'lerini ayarlayın.

    Başlangıç URL'leri, web tarayıcısının içeriğinizi taramaya nereden başlayacağını kontrol eder. Tarayıcı, bağlantıları izleyerek dahil etmek istediğiniz tüm içeriğe ulaşabilmelidir.

    Başlangıç URL'lerini ayarlamak için:

    1. Nutch kurulum dizinine geçin:
      $ cd ~/nutch/apache-nutch-X.Y/
    2. URL'ler için bir dizin oluşturun:
      $ mkdir urls
    3. seed.txt adlı bir dosya oluşturun ve her satıra bir URL yazın.
  2. Takip etme ve takip etmeme kurallarını ayarlayın.

    Yönlendirme URL'si kuralları, tarayıcının hangi URL'leri dizine ekleyeceğini kontrol eder. Takip etme kuralları, URL'lerin taranmasını engeller.

    Bu kuralları ayarlamak için:

    1. Nutch kurulum dizinine geçin.
    2. conf/regex-urlfilter.txt listesini düzenleme:
      $ nano conf/regex-urlfilter.txt
    3. "+" veya "-" önekli normal ifadeler girin:

      # 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. Tarama komut dosyasını düzenleyin.

    gcs.uploadFormat parametresi eksikse veya "raw" olarak ayarlanmışsa nutch index komutuna -addBinaryContent -base64 bağımsız değişkenlerini eklemeniz gerekir. Bu bağımsız değişkenler, Nutch Indexer modülüne ikili içeriği Base64'e dahil etmesini söyler.

    1. crawl komut dosyasını apache-nutch-1.15/bin'da açın.
    2. Seçenekleri bu örnekte gösterildiği gibi ekleyin:

            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 ..."
      

5. adım: Web taraması ve içerik yükleme başlatma

Dizin oluşturucu eklentisini kurduktan sonra yerel modda çalıştırabilirsiniz. Bir tarama işini yürütmek için ./bin'daki komut dosyalarını kullanın.

Aşağıdaki örnekte, bileşenlerin yerel dizinde olduğu varsayılmaktadır. Nutch'u apache-nutch-1.15 dizininden çalıştırın:

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

Tarama günlüklerine terminalden veya logs/ dizininden ulaşabilirsiniz. Günlüğe kaydetme çıkışını yönlendirmek için conf/log4j.properties öğesini düzenleyin.