Apache Nutch Indexer Eklentisi Dağıtma

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

Web taramasını başlattığınızda Apache Nutch, web’i tarar ve belge içeriğinin orijinal ikili (veya metin) sürümlerini Google Cloud Search dizine ekleme API'sine yüklemek için dizinleyici eklentisini kullanır. Dizine ekleme API'si içeriği dizine ekler ve sonuçları kullanıcılarınıza sunar.

Dikkat edilmesi gerekenler

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 1.15 sürümü Dizine ekleme eklentisi yazılımı, Nutch'ın bu sürümünü içerir.
  • Dizin oluşturucu eklentisini çalıştıracak bilgisayarda Java JRE 1.8 yüklü
Apache Tika belge türleri Apache Tika 1.18 tarafından desteklenen belge biçimleri

Dizin oluşturucu eklentisini dağıtma

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

Ön koşullar

Cloud Search Apache Nutch dizin aracı eklentisini dağıtmadan önce, Google 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'ı derleyin ve yükleyin

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

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

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

    $ mvn package

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

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

  5. 2. adımda oluşturulan 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 yükleme eklentileri klasörüne (apache-nutch-1.15/plugins) kopyalayın.

2. Adım: Dizine ekleme eklentisini yapılandırın

Apache Nutch Indexer eklentisini yapılandırmak için plugin-configuration.properties adlı bir dosya oluşturun.

Yapılandırma dosyası, Google Cloud Search veri kaynağına erişmek için gerekli olan aşağıdaki parametreleri belirtmelidir.

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

Aşağıdaki örnekte, gerekli parametreleri içeren örnek bir yapılandırma dosyası gösterilmektedir.

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

Yapılandırma dosyası, dizinleyici eklentisinin davranışını kontrol eden başka parametreler de içerebilir. Eklentinin verileri Cloud Search API'ye (defaultAcl.* ve batch.*) nasıl aktaracağını yapılandırabilirsiniz. Ayrıca, dizinleyici eklentisinin meta verileri ve yapılandırılmış verileri nasıl dolduracağını yapılandırabilirsiniz.

Bu parametrelerin açıklamaları için Google tarafından sağlanan bağlayıcı parametreleri bölümüne gidin.

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

  1. conf/nutch-site.xml dosyası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ından aşağıdakini içermelidir:

    • dizin-temel
    • dizin-fazlası
    • dizin-cisi-google-cloud-aramasi
    conf/nutch-default.xml, bu mülk için varsayılan bir değer sağlar ancak bu mülke indexer-google-cloudsearch değerini manuel olarak da eklemeniz gerekir.
    Meta etiket adları metatags.names = text

    İsteğe bağlı. İlgili veri kaynağının şemasındaki özelliklerle eşlenen etiketlerin virgülle ayrılmış listesi. Meta etiketler için Apache Nutch'u nasıl ayarlayacağınız hakkında daha fazla bilgi edinmek için Nutch ayrıştırma meta etiketleri bölümüne gidin.

    Aşağıdaki örnekte, nutch-site.xml üzerinde yapılması gereken 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 uygulaması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
    Google Cloud Search yapılandırma dosyasının yolu gcs.config.file = path

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

    Yükleme biçimi gcs.uploadFormat = text

    İsteğe bağlı. Dizin oluşturucu eklentisinin, doküman içeriğini Google Cloud Search dizinleyici API'sine aktarma biçimi. Valid values are:

    • raw: Dizine ekleme eklentisi, orijinal, dönüştürülmemiş doküman içeriğini aktarır.
    • text: Dizin oluşturucu eklentisi, çıkarılan metin içeriğini aktarır. Varsayılan değer: raw.

4. Adım: Web taramasını yapılandırın

Web taraması başlatmadan önce, taramayı yalnızca kuruluşunuzun arama sonuçlarında kullanılabilir hale getirmek istediği bilgileri içerecek şekilde yapılandırın. Bu bölümde genel bir bakış sunulmaktadır. Web taramasını ayarlama hakkında daha fazla bilgi için Nutch eğitimine gidin.

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

    Başlangıç URL'leri, Apache Nutch web tarayıcısının içeriğinizi taramaya nereden başlayacağını kontrol eder. Başlangıç URL'leri, web tarayıcısının bağlantıları izleyerek belirli bir taramaya dahil etmek istediğiniz tüm içeriğe erişebilmesini sağlamalıdır. Başlangıç URL'leri gerekiyor.

    Başlangıç URL'leri oluşturmak için:

    1. Çalışma dizinini nutch yükleme diziniyle değiştirin:

      $ 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ırda 1 URL olacak şekilde içindeki URL'leri listeleyin.

  2. Takip etme ve izlememe kuralları oluşturun.

    URL kurallarına göre taranan ve Google Cloud Search dizinine eklenecek URL'ler kontrol edilir. Web tarayıcısı, URL'leri aşağıdaki URL kurallarına göre kontrol eder. Yalnızca bu kurallarla eşleşen URL'ler taranır ve dizine eklenir.

    "Uymama" kuralları, URL'lerin taranmasını ve Google Cloud Search dizinine dahil edilmesini engeller. Bir URL, tarama kalıbı içeriyorsa web tarayıcısı bu URL'yi taramaz.

    Takip etme ve izlememe URL'leri oluşturmak için:

    1. Çalışma dizinini nutch yükleme diziniyle değiştirin:

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Takip et/uyma kurallarını değiştirmek için conf/regex-urlfilter.txt öğesini düzenleyin: \

      $ nano conf/regex-urlfilter.txt
    3. URL kalıplarını ve uzantılarını takip etmek / takip etmemek için "+" veya "-" ön ekine sahip normal ifadeleri aşağıdaki örneklerde gösterildiği gibi girin. Açık uçlu ifadelere izin verilir.

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

    gcs.uploadFormat parametresi yoksa veya "ham" olarak ayarlanmışsa nutch index komutuna iletilecek "-addBinaryContent -base64" bağımsız değişkenlerini eklemeniz gerekir. Bu bağımsız değişkenler, dizinleyici eklentisini çağırdığında Nutch Indexer modülüne, Base64'teki ikili programların dahil edileceğini bildirir. ./bin/crawl komut dosyasında varsayılan olarak bu bağımsız değişkenler bulunmaz.

    1. crawl komut dosyasını apache-nutch-1.15/bin uygulamasında aç.
    2. -addBinaryContent -base64 seçeneklerini, aşağıdaki örnekte olduğu gibi komut dosyasına 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şlatın

Dizin oluşturucu eklentisini yükleyip ayarladıktan sonra, yerel modda kendi başına çalıştırabilirsiniz. Bir tarama işi veya bağımsız Nutch komutlarını yürütmek için ./bin komut dosyalarını kullanın.

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

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

Tarama günlükleri std çıkışında (terminal) veya logs/ dizininde bulunur. Günlük kaydı çıkışını yönlendirmek veya daha ayrıntılı günlük kaydı için conf/log4j.properties öğesini düzenleyin.