Apaçi Solr'u

Apache Solr Bir Düğüm Kurulumu

Apache Solr Bir Düğüm Kurulumu

Bölüm 1: Tek bir düğüm kurma

Bugün, belgelerinizi veya verilerinizi bir depolama cihazında elektronik olarak depolamak hem hızlı hem de kolaydır, aynı zamanda nispeten ucuzdur. Kullanımda, belgenin ne hakkında olduğunu açıklamayı amaçlayan bir dosya adı başvurusudur. Alternatif olarak, veriler yalnızca birkaç seçeneği belirtmek için PostgreSQL, MariaDB veya MongoDB gibi bir Veritabanı Yönetim Sisteminde (DBMS) tutulur. Bir Nvidia V100'de olduğu gibi USB bellek, dahili veya harici sabit disk, Ağa Bağlı Depolama (NAS), Bulut Depolama veya GPU/Flash tabanlı gibi çeşitli depolama ortamları bilgisayara yerel olarak veya uzaktan bağlanır [10].

Buna karşılık, bir belge koleksiyonunda doğru belgeleri bulmak olan ters işlem oldukça karmaşıktır. Çoğunlukla dosya formatının hatasız olarak tespit edilmesini, belgenin indekslenmesini ve temel kavramların çıkarılmasını gerektirir (belge sınıflandırması). Apache Solr çerçevesinin devreye girdiği yer burasıdır. Bahsedilen adımları yapmak için pratik bir arayüz sunar - bir belge dizini oluşturma, arama sorgularını kabul etme, gerçek aramayı yapma ve bir arama sonucu döndürme. Böylece Apache Solr, bir veritabanı veya belge silosu üzerinde etkili araştırma için çekirdeği oluşturur.

Bu makalede, Apache Solr'un nasıl çalıştığını, tek bir düğümün nasıl kurulacağını, belgeleri indekslemeyi, arama yapmayı ve sonucu almayı öğreneceksiniz.

Takip eden makaleler bunun üzerine kuruludur ve bu makalelerde, bir PostgreSQL VTYS'yi bir veri kaynağı olarak entegre etme veya birden çok düğüm arasında yük dengeleme gibi diğer daha spesifik kullanım örneklerini tartışıyoruz.

Apache Solr projesi hakkında

Apache Solr, güçlü Lucene arama dizini sunucusunu temel alan bir arama motoru çerçevesidir [2]. Java ile yazılmış olup, Apache Software Foundation (ASF) çatısı altında muhafaza edilmektedir [6]. Apache 2 lisansı altında ücretsiz olarak kullanılabilir.

“Belgeleri ve verileri tekrar bul” konusu yazılım dünyasında çok önemli bir rol oynamaktadır ve birçok geliştirici bununla yoğun olarak ilgilenmektedir. Awesomeopensource [4] web sitesi 150'den fazla arama motoru açık kaynak projesini listeler. 2021'in başlarından itibaren, ElasticSearch [8] ve Apache Solr/Lucene, daha büyük veri kümelerini aramak söz konusu olduğunda en iyi iki köpektir. Arama motorunuzu geliştirmek çok fazla bilgi gerektirir, Frank bunu 2002'den beri Python tabanlı AdvaS Advanced Search [3] kitaplığıyla yapıyor.

Apache Solr'u kurma:

Apache Solr'un kurulumu ve çalıştırılması karmaşık değildir, sizin tarafınızdan gerçekleştirilmesi gereken bir dizi adımdan ibarettir. İlk veri sorgusunun sonucu için yaklaşık 1 saat bekleyin. Ayrıca Apache Solr sadece bir hobi projesi değil aynı zamanda profesyonel bir ortamda da kullanılmaktadır. Bu nedenle seçilen işletim sistemi ortamı uzun süreli kullanım için tasarlanmıştır.

Bu makalenin temel ortamı olarak, Debian'ın yakında çıkacak olan sürümü olan (2021'in başlarından itibaren) ve 2021'in ortalarında kullanıma sunulması beklenen Debian GNU/Linux 11'i kullanıyoruz. Bu öğretici için, onu yerel sistem olarak, VirtualBox gibi bir sanal makineye veya bir AWS kapsayıcısına zaten yüklemiş olmanızı bekliyoruz.

Temel bileşenlerin dışında, sistemde kurulu olması için aşağıdaki yazılım paketlerine ihtiyacınız vardır:

Bu paketler, Debian GNU/Linux'un standart bileşenleridir. Henüz yüklenmediyse, bunları yönetici haklarına sahip bir kullanıcı olarak, örneğin root veya sudo aracılığıyla tek seferde aşağıdaki gibi yükleyebilirsiniz:

# apt-get install curl varsayılan-java libcommons-cli-java libxerces2-java libtika-java

Ortamı hazırladıktan sonra 2. adım Apache Solr kurulumudur. Şu an itibariyle, Apache Solr normal bir Debian paketi olarak mevcut değil. Bu nedenle, Apache Solr 8'i almak gerekiyor.Önce proje web sitesinin [9] indirme bölümünden 8. Sisteminizin /tmp dizininde saklamak için aşağıdaki wget komutunu kullanın:

$ wget -O /tmp https://indirmeler.apache.org/lucene/solr/8.8.0/solr-8.8.0.tgz

-O anahtarı -output-belgesini kısaltır ve wget'in alınan katranı saklamasını sağlar.verilen dizindeki gz dosyası. Arşivin boyutu kabaca 190M. Ardından, tar kullanarak arşivi /opt dizinine açın. Sonuç olarak, iki alt dizin bulacaksınız - /opt/solr ve /opt/solr-8.8.0, oysa /opt/solr ikincisine sembolik bir bağlantı olarak kurulur. Apache Solr, daha sonra yürüteceğiniz bir kurulum komut dosyasıyla birlikte gelir, aşağıdaki gibidir:

# /opt/solr-8.8.0/bin/install_solr_service.ş

Bu, Solr hizmetinde Linux kullanıcısının çalıştırılmasıyla sonuçlanır ve /var/solr altındaki ev dizini, Solr hizmetini kurar, karşılık gelen düğümleriyle eklenir ve Solr hizmetini 8983 numaralı bağlantı noktasında başlatır. Bunlar varsayılan değerlerdir. Onlardan memnun değilseniz, bunları kurulum sırasında veya daha sonra değiştirebilirsiniz çünkü kurulum komut dosyası kurulum ayarları için ilgili anahtarları kabul eder. Bu parametrelerle ilgili olarak Apache Solr belgelerine göz atmanızı öneririz.

Solr yazılımı aşağıdaki dizinlerde düzenlenmiştir:

Daha ayrıntılı olarak, bu dizinler hakkında Apache Solr belgelerinde [12] okuyabilirsiniz.

Apache Solr'u Yönetmek:

Apache Solr arka planda bir hizmet olarak çalışır. Yönetim izinlerine sahip bir kullanıcı olarak systemctl'yi (ilk satır) kullanarak veya doğrudan Solr dizininden (ikinci satır) iki şekilde başlatabilirsiniz. Her iki terminal komutunu da aşağıda listeliyoruz:

# systemctl solr'yi başlat
$ solr/bin/solr başlangıç

Apache Solr'ı durdurmak da benzer şekilde yapılır:

# systemctl solr'ı durdur
$ solr/bin/solr durağı

Apache Solr hizmetini yeniden başlatmak için de aynı yol geçerlidir:

# systemctl solr'ı yeniden başlat
$ solr/bin/solr yeniden başlatma

Ayrıca, Apache Solr işleminin durumu aşağıdaki gibi görüntülenebilir:

# systemctl durum solr
$ solr/bin/solr durumu

Çıktı, başlatılan hizmet dosyasını, hem ilgili zaman damgasını hem de günlük mesajlarını listeler. Aşağıdaki şekil, Apache Solr hizmetinin 8983 numaralı bağlantı noktasında 632 işlemiyle başlatıldığını göstermektedir. İşlem başarıyla 38 dakika sürüyor.

Apache Solr işleminin etkin olup olmadığını görmek için grep ile birlikte ps komutunu kullanarak da çapraz kontrol yapabilirsiniz. Bu, ps çıktısını şu anda etkin olan tüm Apache Solr işlemleriyle sınırlar.

# ps balta | grep --renkli solr

Aşağıdaki şekil bunu tek bir işlem için göstermektedir. Java çağrısını, bir parametre listesiyle birlikte görürsünüz, örneğin 8983'te sorguları dinlemek için bellek kullanımı (512M) bağlantı noktaları, durdurma istekleri için 7983 ve bağlantı türü (http).

Kullanıcı ekleme:

Apache Solr süreçleri, solr adlı belirli bir kullanıcıyla çalışır. Bu kullanıcı, Solr süreçlerini yönetmede, veri yüklemede ve istek göndermede yardımcı olur. Kurulum sırasında, solr kullanıcısının bir parolası yoktur ve daha fazla ilerlemek için oturum açmak için bir parolaya sahip olması beklenir. Solr kullanıcısı için root gibi bir parola belirleyin, aşağıdaki gibi gösterilir:

# şifre solr

Solr İdaresi:

Apache Solr yönetimi, Solr Dashboard kullanılarak yapılır. Buna web tarayıcısı aracılığıyla http://localhost:8983/solr adresinden erişilebilir. Aşağıdaki şekil ana görünümü göstermektedir.

Solda, sizi günlüğe kaydetme, Solr çekirdeklerinin yönetimi, Java kurulumu ve durum bilgileri için alt bölümlere yönlendiren ana menüyü görürsünüz. Menünün altındaki seçim kutusunu kullanarak istediğiniz çekirdeği seçin. Menünün sağ tarafında ilgili bilgiler görüntülenir. Pano menü girişi, Apache Solr işleminin yanı sıra mevcut yük ve bellek kullanımıyla ilgili daha fazla ayrıntı gösterir.

Lütfen Dashboard'un içeriğinin Solr çekirdeklerinin sayısına ve indekslenen belgelere göre değiştiğini bilin. Değişiklikler hem menü öğelerini hem de sağda görünen ilgili bilgileri etkiler.

Arama Motorlarının Nasıl Çalıştığını Anlamak:

Basitçe söylemek gerekirse, arama motorları belgeleri analiz eder, kategorilere ayırır ve kategorilerine göre arama yapmanızı sağlar. Temel olarak süreç tarama, indeksleme ve sıralama olarak adlandırılan üç aşamadan oluşmaktadır [13].

Emekleme ilk aşamadır ve yeni ve güncellenmiş içeriğin toplandığı bir süreci tanımlar. Arama motoru, örümcekler veya tarayıcılar olarak da bilinen robotları kullanır, bu nedenle mevcut dokümanları gözden geçirmek için tarama terimi.

İkinci aşama denir indeksleme. Daha önce toplanan içerik, orijinal dokümanların arama motorunun anlayacağı bir formata dönüştürülmesiyle aranabilir hale getirilir. Anahtar kelimeler ve kavramlar (büyük) veritabanlarında çıkarılır ve saklanır.

Üçüncü aşama denir sıralama ve arama sonuçlarını bir arama sorgusuyla alakalarına göre sıralama sürecini tanımlar. Arama yapan kişinin sorgusuyla en yüksek alaka düzeyine sahip sonucun önce gelmesi için sonuçların azalan düzende görüntülenmesi yaygındır.

Apache Solr, daha önce açıklanan üç aşamalı sürece benzer şekilde çalışır. Popüler arama motoru Google gibi, Apache Solr da farklı kaynaklardan gelen belgeleri bir dizi toplama, depolama ve dizine ekleme işlemini kullanır ve bunları neredeyse gerçek zamanlı olarak kullanılabilir/aranabilir kılar.

Apache Solr, aşağıdakiler dahil olmak üzere belgeleri indekslemek için farklı yollar kullanır [14]:

  1. Belgeleri doğrudan Solr'a yüklerken Dizin İstek İşleyicisi kullanma. Bu belgeler JSON, XML/XSLT veya CSV formatlarında olmalıdır.
  2. Çıkarma İsteği İşleyicisini (Solr Cell) Kullanma. Belgeler, Apache Tika tarafından desteklenen PDF veya Office formatlarında olmalıdır.
  3. Bir veritabanından veri aktaran ve sütun adlarını kullanarak bunları kataloglayan Veri İçe Aktarma İşleyicisini kullanma. Veri İçe Aktarma İşleyicisi, kaynak olarak e-postalardan, RSS akışlarından, XML verilerinden, veritabanlarından ve düz metin dosyalarından veri alır.

Bir arama isteği gönderildiğinde Apache Solr'da bir sorgu işleyici kullanılır. Sorgu işleyici, sorguyu ve daha önce indekslenmiş belgeleri eşleştirmek için indeks işleyicisinin aynı konseptine dayalı olarak verilen sorguyu analiz eder. Maçlar uygunluk veya alaka düzeyine göre sıralanır. Kısa bir sorgulama örneği aşağıda gösterilmiştir.

Belgelerin Yüklenmesi:

Basitlik adına, aşağıdaki örnek için halihazırda Apache Solr tarafından sağlanan bir örnek veri seti kullanıyoruz. Belgelerin yüklenmesi kullanıcı solr olarak yapılır. Adım 1, techproducts adında bir çekirdeğin oluşturulmasıdır (bir dizi teknik öğe için).

$ solr/bin/solr create -c techproducts

“Yeni çekirdek 'teknoloji ürünleri' oluşturuldu” mesajını görürseniz her şey yolunda demektir. 2. Adım, önceden oluşturulmuş temel teknoloji ürünlerine veri (örnek belgelerden XML verileri) eklemektir. Kullanımda -c (çekirdeğin adı) ile parametrelendirilen takım gönderisi ve yüklenecek belgeler.

$ solr/bin/post -c teknoloji ürünleri solr/example/exampledocs/*.xml

Bu, aşağıda gösterilen çıktıyla sonuçlanacak ve aramanın tamamını ve dizine eklenen 14 belgeyi içerecektir.

Ayrıca, Kontrol Paneli değişiklikleri gösterir. Sol taraftaki açılır menüde techproducts adlı yeni bir giriş görünür ve sağ tarafta değiştirilen ilgili belgelerin sayısı. Ne yazık ki, ham veri kümelerinin ayrıntılı bir görünümü mümkün değildir.

Çekirdeğin/koleksiyonun kaldırılması gerektiğinde aşağıdaki komutu kullanın:

$ solr/bin/solr delete -c techproducts

Veri Sorgulama:

Apache Solr, verileri sorgulamak için iki arayüz sunar: web tabanlı Gösterge Tablosu ve komut satırı aracılığıyla. Aşağıda her iki yöntemi de açıklayacağız.

Solr panosu aracılığıyla sorgu gönderme şu şekilde yapılır:

Komut satırı, Panodakiyle aynı sorguyu kabul eder. Aradaki fark, sorgu alanlarının adını bilmeniz gerektiğidir. Aynı sorguyu yukarıdaki gibi göndermek için bir terminalde aşağıdaki komutu çalıştırmanız gerekir:

$ kıvrılma
http://localhost:8983/solr/techproducts/query?q=”manu”:”Belkin

Çıktı, aşağıda gösterildiği gibi JSON formatındadır. Sonuç, bir yanıt başlığından ve gerçek yanıttan oluşur. Yanıt iki veri kümesinden oluşur.

Toplama:

Tebrikler! İlk aşamayı başarıyla tamamladınız. Temel altyapı kuruldu ve belgeleri nasıl karşıya yükleyeceğinizi ve sorgulayacağınızı öğrendiniz.

Sonraki adım, sorgunun nasıl hassaslaştırılacağını, daha karmaşık sorguların nasıl formüle edileceğini ve Apache Solr sorgu sayfası tarafından sağlanan farklı web formlarının nasıl anlaşılacağını ele alacaktır. Ayrıca, XML, CSV ve JSON gibi farklı çıktı biçimlerini kullanarak arama sonucunun nasıl sonradan işleneceğini tartışacağız.

Yazarlar hakkında:

Jacqui Kabeta çevreci, hevesli bir araştırmacı, eğitmen ve akıl hocasıdır. Birkaç Afrika ülkesinde BT endüstrisinde ve STK ortamlarında çalıştı.

Frank Hofmann bir BT geliştiricisi, eğitmeni ve yazarıdır ve Berlin, Cenevre ve Cape Town'da çalışmayı tercih eder. dpmb'den edinilebilen Debian Paket Yönetim Kitabının ortak yazarı.kuruluş

Ubuntu 14'te League Of Legends Nasıl Kurulur.04
League of Legends hayranıysanız, bu, League of Legends koşusunu test etmeniz için bir fırsattır. Linux kullanıcısıysanız LOL'nin PlayOnLinux'ta destek...
En son OpenRA Strateji Oyununu Ubuntu Linux'a yükleyin
OpenRA, klasik Command & Conquer: Red Alert gibi erken Westwood oyunlarını yeniden yaratan bir Libre/Free Gerçek Zamanlı Strateji oyun motorudur. Dağı...
Gamecube & Wii için en yeni Dolphin Emulator'ı Linux'a yükleyin
Dolphin Emulator, seçtiğiniz Gamecube & Wii oyunlarını Linux Kişisel Bilgisayarlarda (PC) oynamanıza izin verir. Ücretsiz olarak kullanılabilen ve aç...