Apache Nutch Indexer Eklentisi Dağıtma

Google Cloud Search'ü, açık kaynaklı bir web tarayıcısı olan Apache Nutch için Google Cloud Search dizin oluşturucu eklentisini dağıtarak 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 Indexing API'ye yüklemek için indexer eklentisini kullanır. Indexing API, içeriği dizine ekler ve sonuçları kullanıcılarınıza sunar.

Dikkat edilecek önemli noktalar

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ü. 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'de desteklenen belge biçimleri

Dizin oluşturucu eklentisini dağıtma

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

Ön koşullar

Cloud Search Apache Nutch indexer 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'ı 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. 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. target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zip (2. adımda oluşturulan) dosyasını bir klasöre çıkarın. plugins/indexer-google-cloudsearch klasörünü Apache Nutch'un yükleme eklentileri klasörüne (apache-nutch-1.15/plugins) kopyalayın.

2. adım: Dizin oluşturucu 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ında, Google Cloud Search veri kaynağına erişmek için gerekli olan aşağıdaki parametreler belirtilmelidir.

Yer Parametre
Veri kaynağı kimliği api.sourceId = 1234567890abcdef
Zorunlu. Google Workspace yöneticisinin dizine ekleyici eklentisi için ayarladığı Google 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 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 ekleyici eklentisinin davranışını kontrol eden başka parametreler de içerebilir. Eklentinin verileri Cloud Search API'ye, defaultAcl.* ve batch.*'ye nasıl aktaracağını yapılandırabilirsiniz. Ayrıca, dizin oluşturucu 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'ı yapılandırın

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

    Yer 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, 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 özelliklerle eşleşen etiketlerin virgülle ayrılmış listesi. Apache Nutch'ı meta etiketler için ayarlama hakkında 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:

    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ı. Dizin oluşturucu eklentisinin belge içeriğini Google Cloud Search dizin oluşturucu API'sine aktardığı biçim. Geçerli değerler şunlardır:

    • raw: Dizin oluşturucu eklentisi, orijinal ve dönüştürülmemiş belge içeriğini gönderir.
    • text: Dizin oluşturucu eklentisi, çıkarılan metin içeriğini gönderir. Varsayılan değer raw'dır.

4. adım: Web taramayı 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ı ayarlama hakkında daha fazla bilgi için Nutch eğitimine 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, bağlantıları izleyerek web tarayıcısının belirli bir taramaya dahil etmek istediğiniz tüm içeriğe ulaşmasını sağlamalıdır. 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 bu dosyada satır başına 1 URL olacak şekilde listeleyin.

  2. Takip etme ve takip etmeme kurallarını ayarlayın.

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

    Takip etme kuralları, URL'lerin taranmasını ve Google Cloud Search dizinine eklenmesini engeller. Bir URL, taranmama kalıbı içeriyorsa web tarayıcısı bu URL'yi taramaz.

    Takip etme ve takip etmeme 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 etme/etmeme kurallarını değiştirmek için conf/regex-urlfilter.txt simgesini 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 "-" önekli 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 "raw" olarak ayarlanmışsa nutch index komutuna iletilecek "-addBinaryContent -base64" bağımsız değişkenlerini eklemeniz gerekir. Bu bağımsız değişkenler, dizin oluşturucu eklentisini çağırdığında Nutch Indexer modülüne ikili içeriği Base64'e dahil etmesini 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 taraması ve içerik yükleme işlemini başlatın

Dizin oluşturucu eklentisini yükleyip ayarladıktan sonra yerel modda tek başına çalıştırabilirsiniz. Bir tarama işini veya bağımsız Nutch komutlarını yürütmek için ./bin adresindeki 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, standart çıkışta (terminal) veya logs/dizininde kullanılabilir. 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.