Apaçi Solr'u

Apache Solr'a Giriş. Bölüm 2 Sorgulama Solr

Apache Solr'a Giriş. Bölüm 2 Sorgulama Solr
Apache Solr [1], Java ile yazılmış ve Lucene arama kitaplığına [6] dayalı bir arama motoru çerçevesidir. Bir önceki makalede, yakında piyasaya sürülecek olan Debian GNU/Linux 11'de Apache Solr'u kurduk, tek bir veri çekirdeği başlattık, örnek verileri yükledik ve basit bir sorgu.

Bu, önceki makalenin devamı niteliğindeki bir makaledir. Sorgunun nasıl hassaslaştırılacağını, farklı parametrelerle daha karmaşık arama kriterlerinin nasıl formüle edileceğini ve Apache Solr sorgu sayfasının farklı web formlarını nasıl anlayacağınızı ele alacağız. Ayrıca, XML, CSV ve JSON gibi farklı çıktı biçimlerini kullanarak arama sonucunun nasıl sonradan işleneceğini tartışacağız.

Apache Solr'u sorgulama

Apache Solr, arka planda çalışan bir web uygulaması ve hizmeti olarak tasarlanmıştır. Sonuç olarak, herhangi bir istemci uygulaması Solr'a sorgular göndererek (bu makalenin odak noktası), dizinlenmiş verileri ekleyerek, güncelleyerek ve silerek ve temel verileri optimize ederek belge çekirdeğini değiştirerek iletişim kurabilir. İki seçenek vardır - pano/web arayüzü aracılığıyla veya ilgili bir istek göndererek bir API kullanarak.

kullanımı yaygındır ilk seçenek düzenli erişim için değil, test amaçlı. Aşağıdaki şekil, web tarayıcısı Firefox'taki farklı sorgu formları ile Apache Solr Yönetim Kullanıcı Arabirimindeki Gösterge Tablosunu göstermektedir.

İlk olarak, çekirdek seçim alanının altındaki menüden “Sorgu” menü girişini seçin. Ardından, gösterge panosu aşağıdaki gibi birkaç giriş alanı görüntüler:

Sorguyu Yürüt düğmesine tıklamak istenen isteği çalıştırır. Pratik örnekler için aşağıya bir göz atın.

olarak ikinci seçenek, bir API kullanarak bir istek gönderebilirsiniz. Bu, herhangi bir uygulama tarafından Apache Solr'a gönderilebilen bir HTTP isteğidir. Solr, isteği işler ve bir yanıt döndürür. Bunun özel bir durumu, Java API aracılığıyla Apache Solr'a bağlanmaktır. Bu, HTTP bağlantısı gerektirmeyen bir Java API olan SolrJ [7] adlı ayrı bir projeye dış kaynaklı olarak verilmiştir.

Sorgu sözdizimi

Sorgu sözdizimi en iyi [3] ve [5]'te açıklanmıştır. Farklı parametre adları, yukarıda açıklanan formlardaki giriş alanlarının adlarına doğrudan karşılık gelir. Aşağıdaki tablo bunları ve pratik örnekleri listeler.

Sorgu Parametreleri Dizini

Parametre Açıklama Misal
q Apache Solr'un ana sorgu parametresi - alan adları ve değerleri. Benzerlik puanları, bu parametredeki terimlere göre belgelenir. Kimlik: 5
arabalar:*adilla*
*:X5
fq Sonuç kümesini, örneğin İşlev Aralığı Sorgu Ayrıştırıcı aracılığıyla tanımlanan filtreyle eşleşen üst küme belgeleriyle sınırlayın model
kimlik, model
Başlat Sayfa sonuçları için ofsetler (başlangıç). Bu parametrenin varsayılan değeri 0'dır. 5
satırlar Sayfa sonuçları için ofsetler (son). Bu parametrenin değeri varsayılan olarak 10'dur 15
çeşit Sorgu sonuçlarının sıralanacağı, virgülle ayrılmış alanların listesini belirtir artan model
fl Sonuç kümesindeki tüm belgeler için döndürülecek alanların listesini belirtir model
kimlik, model
ağırlık Bu parametre, sonucu görüntülemek istediğimiz yanıt yazıcısının türünü temsil eder. Bunun değeri varsayılan olarak JSON'dur. json
xml

Aramalar, q parametresindeki sorgu dizesi ile HTTP GET isteği ile yapılır. Aşağıdaki örnekler bunun nasıl çalıştığını netleştirecektir. Kullanımda, sorguyu yerel olarak kurulan Solr'a göndermek için curl.

Ayrıca, hangi bilgilerin döndürüleceğini kontrol etmek için isteğe bağlı istek parametrelerini sorgu ayrıştırıcısına göndermek için kendi istek işleyicinizi tanımlayabilirsiniz.

Sorgu Ayrıştırıcıları

Apache Solr, arama dizenizi arama motoru için belirli talimatlara çeviren bir bileşen olan sorgu ayrıştırıcısı kullanır. Aradığınız belge ile aranızda bir sorgu ayrıştırıcı durur.

Solr, gönderilen bir sorgunun işlenme biçiminde farklılık gösteren çeşitli ayrıştırıcı türleri ile birlikte gelir. Standart Sorgu Ayrıştırıcı, yapılandırılmış sorgular için iyi çalışır ancak sözdizimi hatalarına karşı daha az toleranslıdır. Aynı zamanda, hem DisMax hem de Genişletilmiş DisMax Sorgu Ayrıştırıcı, doğal dil benzeri sorgular için optimize edilmiştir. Kullanıcılar tarafından girilen basit ifadeleri işlemek ve farklı ağırlıklar kullanarak çeşitli alanlarda tek tek terimleri aramak için tasarlanmıştır.

Ayrıca Solr, belirli bir uygunluk puanı oluşturmak için bir işlevin bir sorguyla birleştirilmesine izin veren İşlev Sorguları da sunar. Bu ayrıştırıcılar, İşlev Sorgu Ayrıştırıcı ve İşlev Aralığı Sorgu Ayrıştırıcı olarak adlandırılır. Aşağıdaki örnek, 318'den 323'e kadar olan modellerle “bmw” (marka veri alanında saklanan) için tüm veri setlerini seçen sonuncuyu göstermektedir:

curl http://localhost:8983/solr/cars/query -d '
q=yapım: bmw&
fq=model:[318 - 323] '

Sonuçların sonradan işlenmesi

Apache Solr'a sorgu göndermek bir kısımdır, ancak diğerinden gelen arama sonucunu sonradan işleme tabi tutar. İlk olarak, JSON'dan XML'e, CSV'ye ve basitleştirilmiş bir Ruby biçimine kadar farklı yanıt biçimleri arasından seçim yapabilirsiniz. Bir sorguda karşılık gelen wt parametresini belirtmeniz yeterlidir. Aşağıdaki kod örneği, kaçışlı & ile curl kullanan tüm öğeler için veri kümesini CSV biçiminde almak için bunu gösterir:

curl http://localhost:8983/solr/cars/query?q=id:5\&wt=csv

Çıktı, aşağıdaki gibi virgülle ayrılmış bir listedir:

Sonucu XML verisi olarak almak, ancak iki çıktı alanı yapmak ve modellemek için yalnızca aşağıdaki sorguyu çalıştırın:

curl http://localhost:8983/solr/cars/query?q=*:*\&fl=yapım,model\&wt=xml

Çıktı farklıdır ve hem yanıt başlığını hem de gerçek yanıtı içerir:

Wget, alınan verileri stdout'ta basitçe yazdırır. Bu, standart komut satırı araçlarını kullanarak yanıtı sonradan işlemenize olanak tanır. Birkaçını listelemek gerekirse, bu, JSON için jq [9], XML için xsltproc, xidel, xmlstarlet [10] ve CSV formatı için csvkit [11] içerir.

Sonuç

Bu makale, Apache Solr'a sorgu göndermenin farklı yollarını gösterir ve arama sonucunun nasıl işleneceğini açıklar. Bir sonraki bölümde, ilişkisel bir veritabanı yönetim sistemi olan PostgreSQL'de arama yapmak için Apache Solr'ı nasıl kullanacağınızı öğreneceksiniz.

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ş

Bağlantılar ve Referanslar

Linux Oyunları Geliştirmek için Ücretsiz ve Açık Kaynaklı Oyun Motorları
Bu makale, Linux'ta 2D ve 3D oyunlar geliştirmek için kullanılabilecek ücretsiz ve açık kaynaklı oyun motorlarının bir listesini kapsayacaktır. Bu tür...
Linux Eğitimi için Tomb Raider'ın Gölgesi
Shadow of the Tomb Raider, Eidos Montreal tarafından yaratılan bir aksiyon-macera oyunu serisi olan Tomb Raider serisine eklenen on ikinci oyundur. Oy...
Linux'ta FPS Nasıl Arttırılır?
FPS'nin kısaltması Saniyedeki Kare Sayısı. FPS'nin görevi, video oynatma veya oyun performanslarındaki kare hızını ölçmektir. Basit bir deyişle, her s...