Apache Nutch Indexer Eklentisi Dağıtma

Google Cloud Search'ü, açık kaynak web tarayıcısı olan Apache Nutch için Google Cloud Search dizinleyici eklentisini dağıtarak 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'un bu sürümünü içerir.
  • Dizine ekleme eklentisini çalıştıracak bilgisayarda Java JRE 1.8 yüklü
Apache Tika belge türleri Apache Tika 1.18'in desteklediği belge biçimleri

Dizine ekleme eklentisini dağıtma

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

Ön koşullar

Cloud Search Apache Nutch dizinleyici 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'u derleyip yükleyin

  1. GitHub'dan dizin oluşturma eklentisi deposunu klonlayın.

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

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

    $ mvn package

    Dizine dönüştürücü eklentisi oluştururken testleri atlamak için mvn package -DskipTests işlevini 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 öğesini (2. adımda yerleşiktir) 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.

Yer 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 dizinleyici 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 diğer parametreleri de içerebilir. Eklentinin, Cloud Search API'ye veri aktarma şeklini, defaultAcl.* ve batch.* yapılandırabilirsiniz. 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 bölümüne gidin.

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

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

    Yer Parametre
    Eklentinin içeriği plugin.includes = text

    Zorunlu. Kullanılacak eklentilerin listesi. Bu, en az aşağıdaki bilgileri içermelidir:

    • indeks-temel
    • diğer-dizine ekle
    • indexer-google-cloudsearch
    conf/nutch-default.xml, bu özellik için varsayılan bir değer sağlar ancak buna manuel olarak indexer-google-cloudsearch eklemeniz de 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 isterseniz Nutch ayrıştırma meta etiketleri bölümüne gidin.

    Aşağıdaki örnekte, nutch-site.xml için 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 sayfası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ı. Dizine ekleme 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: Dizine ekleme eklentisi, ayıklanmış metin içeriklerini aktarır. Varsayılan değer raw değeridir.

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

Bir 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 bakış sunulmaktadır. Web taramasının nasıl ayarlanacağı 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 erişmesini sağlamalıdır. Başlangıç URL'leri gereklidir.

    Başlangıç URL'lerini ayarlamak 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 adında bir dosya oluşturun ve dosyadaki URL'leri, her satırda 1 URL olacak şekilde listeleyin.

  2. İzleme ve izlememe kuralları oluşturabilirsiniz.

    URL kurallarını takip et, hangi URL'lerin taranıp Google Cloud Search dizinine dahil edileceğ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ıp dizine eklenir.

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

    Takip et ve izlemeyen URL kuralları oluşturmak için:

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

      $ cd ~/nutch/apache-nutch-X.Y/
    2. Takip et/takip etme kurallarını değiştirmek için conf/regex-urlfilter.txt öğesini 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 / izlemek için "+" veya "-" ön ekine sahip 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 iletmek için "-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 Base64'e ikili içerik dahil etmesini söyler. ./bin/Scan 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 gösterildiği 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

Dizine dönüştürücü 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ılmıştır. apache-nutch-1.15 dizininden aşağıdaki komutla Nutch'u çalıştırın:

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

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