Apache Nutch Indexer Eklentisi Dağıtma

Açık kaynak bir web tarayıcı olan Apache Nutch için Google Cloud Search dizine ekleme eklentisini dağıtarak Google Cloud Search'i 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 dizine ekleme 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.
  • Dizine ekleme eklentisini çalıştıracak bilgisayarda Java JRE 1.8 yüklü olmalıdır.
Apache Tika belge türleri Apache Tika 1.18 tarafından desteklenen belge biçimleri

Dizine ekleme eklentisini dağıtma

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

Ön koşullar

Cloud Search Apache Nutch dizine ekleme 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'ı derleyip yükleyin

  1. Dizine ekleme eklentisi deposunu GitHub'dan kopyalayın.

    $ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git
    $ cd apache-nutch-indexer-plugin
  2. Dilediğiniz dizine ekleme eklentisi sürümüne göz atın:

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

    $ mvn package

    Dizine ekleme eklentisini oluştururken testleri atlamak için mvn package -DskipTests değerini kullanın.

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

  5. target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip dosyasını (2. adımda oluşturulur) 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 dizine ekleme 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.

Yer Parametre
Veri kaynağı kimliği api.sourceId = 1234567890abcdef
Zorunlu. Google Workspace yöneticisinin dizine ekleme eklentisi için ayarladığı Google Cloud Search kaynak kimliği.
Hizmet hesabı api.serviceAccountPrivateKeyFile = ./PrivateKey.json
Zorunlu. Google Workspace yöneticisinin dizine ekleyen eklenti 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ı, dizine ekleme eklentisi davranışını kontrol eden diğer parametreleri de içerebilir. Eklentinin Cloud Search API'ye, defaultAcl.* ve batch.*'ye nasıl veri göndereceğini yapılandırabilirsiniz. Dilerseniz dizine ekleme eklentisinin meta verileri ve yapılandırılmış verileri nasıl dolduracağını da yapılandırabilirsiniz.

Bu parametrelerin açıklamaları için Google tarafından sağlanan bağlayıcı parametreleri başlıklı makaleyi inceleyin.

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

  1. conf/nutch-site.xml dosyasını açıp aşağıdaki parametreleri ekleyin:

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

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

    • index-basic
    • index-more
    • indexer-google-cloudsearch
    conf/nutch-default.xml bu özellik için varsayılan bir değer sağlar ancak indexer-google-cloudsearch özelliğini de manuel olarak eklemeniz gerekir.
    Meta etiket adları metatags.names = text

    İsteğe bağlı. İlgili veri kaynağının şemasındaki mülklerle eşleşen etiketlerin virgülle ayrılmış listesi. Apache Nutch'ı meta etiketler için ayarlama hakkında daha fazla bilgi edinmek isterseniz Nutch-parse metatags başlıklı makaleyi inceleyin.

    Aşağıdaki örnekte, nutch-site.xml için 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 bağlantısını açıp 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:

    Yer 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ı. Dizine ekleme eklentisinin, belge içeriğini Google Cloud Search dizine ekleme API'sine gönderdiği biçim. Geçerli değerler şunlardır:

    • raw: dizine ekleme eklentisi, dönüştürülmemiş orijinal doküman içeriğini gönderir.
    • text: dizine ekleme eklentisi, ayıklanan metin içeriğini gönderir. Varsayılan değer: raw.

4. Adım: Web tarama işlemini yapılandırın

Web taraması başlatmadan önce taramayı, yalnızca kuruluşunuzun arama sonuçlarında sunmak istediği bilgileri içerecek şekilde yapılandırın. Bu bölümde genel bilgiler verilmektedir. Web taramasının nasıl ayarlanacağı hakkında daha fazla bilgi için Nutch eğitim makalesine gidin.

  1. Başlangıç URL'lerini 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 ulaşmasını sağlar. Başlangıç URL'leri gereklidir.

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

    1. Çalışma dizinini nutch yükleme dizini olarak 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 URL'leri satır başına 1 URL olacak şekilde listeleyin.

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

    URL kuralları, hangi URL'lerin taranacağını ve Google Cloud Search dizine ekleneceğini kontrol eder. 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.

    "İzleme" kuralları, URL'lerin taranmasını ve Google Cloud Search dizine eklenmesini engeller. Bir URL'de taranmaması gerektiğini belirten bir kalıp varsa web tarayıcı bu URL'yi taramaz.

    Takip ve takip etme URL kurallarını ayarlamak için:

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

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Takip/takip etmemeyi değiştirmek için conf/regex-urlfilter.txt'ü düzenleyin: \

      $ nano conf/regex-urlfilter.txt
    3. Aşağıdaki örneklerde gösterildiği gibi, URL kalıplarını ve uzantılarını takip etmek / takip etmemek için "+" veya "-" öneki içeren normal ifadeler 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 eksikse veya "ham" olarak ayarlanmışsa nutch index komutuna iletilecek "-addBinaryContent -base64" bağımsız değişkenleri eklemeniz gerekir. Bu bağımsız değişkenler, Nutch dizine ekleme modülüne dizine ekleme eklentisini çağırdığında ikili içeriği Base64 olarak eklemesini söyler. ./bin/crawl komut dosyasında varsayılan olarak bu bağımsız değişkenler yoktur.

    1. crawl komut dosyasını apache-nutch-1.15/bin uygulamasında açın.
    2. Aşağıdaki örnekte gösterildiği gibi -addBinaryContent -base64 seçeneklerini 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 tarama ve içerik yükleme işlemini başlatın

Dizine ekleme eklentisini yükleyip ayarladıktan sonra yerel modda kendi başına çalıştırabilirsiniz. Tarama işini veya ayrı Nutch komutlarını yürütmek için ./bin'teki komut dosyalarını kullanın.

Aşağıdaki örnekte, gerekli bileşenlerin yerel dizinde bulunduğu varsayılmaktadır. Nutch'u 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 çıkışını yönlendirmek veya daha ayrıntılı günlük kaydı için conf/log4j.properties dosyasını düzenleyin.