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:
|
| Yazılım |
|
| 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:
- Google Workspace özel anahtarı (hizmet hesabı kimliğini içerir). Özel anahtar edinme hakkında bilgi için Cloud Search API'ye erişimi yapılandırma başlıklı makaleye gidin.
- Google Workspace veri kaynağı kimliği. Veri kaynağı kimliği edinme hakkında bilgi için Aramaya veri kaynağı ekleme başlıklı makaleyi inceleyin.
1. adım: Eklenti yazılımını ve Apache Nutch'ı oluşturup yükleyin
Indexer eklenti deposunu GitHub'dan klonlayın.
$ git clone https://github.com/google-cloudsearch/apache-nutch-indexer-plugin.git $ cd apache-nutch-indexer-plugin
İstediğiniz dizin oluşturucu eklentisinin sürümünü kontrol edin:
$ git checkout tags/v1-0.0.5
Dizin oluşturucu eklentisini oluşturun.
$ mvn package
Eklentiyi oluştururken testleri atlamak için
mvn package -DskipTestskullanın.Apache Nutch 1.15'i indirip Apache Nutch yükleme talimatlarını uygulayın.
target/google-cloudsearch-apache-nutch-indexer-plugin-v1.0.0.5.zipdosyasını bir klasöre çıkarın.plugins/indexer-google-cloudsearchklasörünü Apache Nutchpluginsklasö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
conf/nutch-site.xmlbağlantısını açın ve aşağıdaki parametreleri ekleyin:Ayar Parametre Eklenti şunları içerir: plugin.includes = textZorunlu. Kullanılacak eklentilerin listesi. Bu açıklama en az şunları içermelidir:
- index-basic
- index-more
- indexer-google-cloudsearch
conf/nutch-default.xmlvarsayılan bir değer sağlar ancakindexer-google-cloudsearchdeğ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.xmliç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>conf/index-writers.xmlbağ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 = pathZorunlu. 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ğerraw'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.
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:
- Nutch kurulum dizinine geçin:
$ cd ~/nutch/apache-nutch-X.Y/
- URL'ler için bir dizin oluşturun:
$ mkdir urls
seed.txtadlı bir dosya oluşturun ve her satıra bir URL yazın.
- Nutch kurulum dizinine geçin:
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:
- Nutch kurulum dizinine geçin.
conf/regex-urlfilter.txtlistesini düzenleme:$ nano conf/regex-urlfilter.txt
"+" 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 #+.
Tarama komut dosyasını düzenleyin.
gcs.uploadFormatparametresi eksikse veya "raw" olarak ayarlanmışsanutch indexkomutuna-addBinaryContent -base64bağı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.crawlkomut dosyasınıapache-nutch-1.15/bin'da açın.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.