Bu, önceki iki makalenin devamı niteliğindeki bir makaledir [2,3]. Şimdiye kadar, indekslenmiş verileri Apache Solr deposuna yükledik ve bununla ilgili verileri sorguladık. Şimdi ilişkisel veritabanı yönetim sistemi PostgreSQL [4]'i Apache Solr'a nasıl bağlayacağınızı ve Solr'un yeteneklerini kullanarak içinde arama yapmayı öğreneceksiniz. Bu, aşağıda daha ayrıntılı olarak açıklanan birkaç adımı gerçekleştirmeyi gerekli kılar - PostgreSQL'i kurmak, PostgreSQL veritabanında bir veri yapısı hazırlamak ve PostgreSQL'i Apache Solr'a bağlamak ve aramamızı yapmak.
Adım 1: PostgreSQL'i Ayarlama
PostgreSQL hakkında - kısa bir bilgi
PostgreSQL ustaca bir nesne-ilişkisel veritabanı yönetim sistemidir. Kullanıma hazırdır ve 30 yılı aşkın süredir aktif olarak geliştirilmektedir. Ingres'in halefi olarak görüldüğü Kaliforniya Üniversitesi'nden kaynaklanmaktadır [7].
En başından beri, açık kaynak (GPL) altında mevcuttur, kullanımı, değiştirilmesi ve dağıtılması ücretsizdir. Endüstride yaygın olarak kullanılmaktadır ve çok popülerdir. PostgreSQL başlangıçta yalnızca UNIX/Linux sistemlerinde çalışacak şekilde tasarlandı ve daha sonra Microsoft Windows, Solaris ve BSD gibi diğer sistemlerde çalışacak şekilde tasarlandı. PostgreSQL'in şu anki gelişimi dünya çapında çok sayıda gönüllü tarafından yapılıyor.
PostgreSQL kurulumu
Henüz yapılmadıysa, PostgreSQL sunucusunu ve istemcisini yerel olarak, örneğin apt kullanarak aşağıda açıklandığı gibi Debian GNU/Linux'a kurun. İki makale PostgreSQL ile ilgili - Yunis Said'in makalesi [5] Ubuntu'daki kurulumu tartışıyor. Yine de, önceki makalem PostgreSQL'in GIS uzantısı PostGIS [6] ile kombinasyonuna odaklanırken yalnızca yüzeyi çiziyor. Buradaki açıklama, bu özel kurulum için ihtiyaç duyduğumuz tüm adımları özetlemektedir.
# apt postgresql-13 postgresql-client-13 yükleyinArdından, pg_isready komutunun yardımıyla PostgreSQL'in çalıştığını doğrulayın. Bu, PostgreSQL paketinin bir parçası olan bir yardımcı programdır.
# pg_hazır/var/run/postgresql:5432 - Bağlantılar kabul edilir
Yukarıdaki çıktı, PostgreSQL'in hazır olduğunu ve 5432 numaralı bağlantı noktasından gelen bağlantıları beklediğini gösteriyor. Aksi ayarlanmadıkça, bu standart yapılandırmadır. Sonraki adım, UNIX kullanıcısı Postgres için parola ayarlamaktır:
# passwd PostgresPostgreSQL'in kendi kullanıcı veritabanına sahip olduğunu, ancak idari PostgreSQL kullanıcısı Postgres'in henüz bir parolası olmadığını unutmayın. Önceki adım PostgreSQL kullanıcısı Postgres için de yapılmalıdır:
# su - Postgres$ psql -c "ŞİFRE 'şifre' İLE KULLANICI Postgreslerini DEĞİŞTİRİN;"
Basit olması için, seçilen parola yalnızca bir paroladır ve test dışındaki sistemlerde daha güvenli bir parola ifadesi ile değiştirilmelidir. Yukarıdaki komut, PostgreSQL'in dahili kullanıcı tablosunu değiştirecektir. Farklı tırnak işaretlerinin farkında olun - kabuk yorumlayıcısının komutu yanlış şekilde değerlendirmesini önlemek için parola tek tırnak içinde ve SQL sorgusu çift tırnak içinde. Ayrıca, komutun sonundaki çift tırnak işaretinden önce SQL sorgusundan sonra bir noktalı virgül ekleyin.
Ardından, idari nedenlerle PostgreSQL'e önceden oluşturulmuş parolayla Postgres kullanıcısı olarak bağlanın. Komuta psql denir:
$ psqlApache Solr'dan PostgreSQL veritabanına bağlanma, solr kullanıcısı olarak yapılır. Öyleyse, PostgreSQL kullanıcı solr'ını ekleyelim ve tek seferde ona karşılık gelen bir solr şifresi belirleyelim:
$ ŞİFRE İLE KULLANICI solr OLUŞTUR 'solr';Basit olması için, seçilen parola sadece solr'dur ve üretimde olan sistemlerde daha güvenli bir parola ifadesi ile değiştirilmelidir.
Adım 2: Bir veri yapısının hazırlanması
Verileri depolamak ve almak için ilgili bir veritabanına ihtiyaç vardır. Aşağıdaki komut, solr kullanıcısına ait olan ve daha sonra kullanılacak arabaların bir veritabanını oluşturur.
$ SAHİBİ İLE VERİTABANI ARAÇ CREATE = solr;Ardından, yeni oluşturulan veritabanı araçlarına kullanıcı solr olarak bağlanın. -d seçeneği (-dbname için kısa seçenek) veritabanı adını ve -U (-username için kısa seçenek) PostgreSQL kullanıcısının adını tanımlar.
$ psql -d arabalar -U solrBoş bir veritabanı kullanışlı değildir, ancak içeriği olan yapılandırılmış tablolar işe yarar. Masa arabalarının yapısını aşağıdaki gibi oluşturun:
$ TABLO OLUŞTUR arabalar (id int,
varchar yap(100),
model varchar(100),
açıklama varchar(100),
renk varchar(50),
fiyat int
);
Tablo arabaları altı veri alanı içerir - id (tamsayı), make (100 uzunluğunda bir dize), model (100 uzunluğunda bir dize), açıklama (100 uzunluğunda bir dize), renk (50 uzunluğunda bir dize) ve fiyat (tam sayı). Bazı örnek verilere sahip olmak için, aşağıdaki değerleri SQL ifadeleri olarak tablo arabalarına ekleyin:
$ INSERT INTO arabalar (kimlik, marka, model, açıklama, renk, fiyat)DEĞERLER (1, 'BMW', 'X5', 'Harika araba', 'gri', 45000);
$ INSERT INTO arabalar (kimlik, marka, model, açıklama, renk, fiyat)
DEĞERLER (2, 'Audi', 'Quattro', 'yarış arabası', 'beyaz', 30000);
Sonuç, havalı bir araba olarak tanımlanan 45000 USD'ye mal olan gri bir BMW X5'i ve 30000 USD'ye mal olan beyaz bir yarış arabası Audi Quattro'yu temsil eden iki giriştir.
Ardından, \q kullanarak PostgreSQL konsolundan çıkın veya çıkın.
$ \qAdım 3: PostgreSQL'i Apache Solr ile Bağlama
PostgreSQL ve Apache Solr'un bağlantısı iki yazılım parçasına dayanır - PostgreSQL için Java Veritabanı Bağlantısı (JDBC) sürücüsü olarak adlandırılan bir Java sürücüsü ve Solr sunucu yapılandırmasının bir uzantısı. JDBC sürücüsü, PostgreSQL'e bir Java arabirimi ekler ve Solr yapılandırmasındaki ek giriş, Solr'a JDBC sürücüsünü kullanarak PostgreSQL'e nasıl bağlanacağını söyler.
JDBC sürücüsünün eklenmesi, kullanıcı kökü olarak aşağıdaki gibi yapılır ve JDBC sürücüsünü Debian paket deposundan yükler:
# apt-get kurulumu libpostgresql-jdbc-javaApache Solr tarafında da buna karşılık gelen bir düğüm bulunmalıdır. Henüz yapılmadıysa, UNIX kullanıcısı solr olarak, düğüm arabalarını aşağıdaki gibi oluşturun:
$ bin/solr -c araba oluşturArdından, yeni oluşturulan düğüm için Solr yapılandırmasını genişletin. Aşağıdaki satırları /var/solr/data/cars/conf/solrconfig dosyasına ekleyin.xml:
db-data-config.xmlAyrıca, bir dosya oluşturun /var/solr/data/cars/conf/data-config.xml oluşturun ve aşağıdaki içeriği içinde saklayın:
Yukarıdaki satırlar önceki ayarlara karşılık gelir ve JDBC sürücüsünü tanımlar, PostgreSQL VTYS'ye bağlanmak için 5432 portunu ilgili şifre ile kullanıcı solr olarak belirtin ve PostgreSQL'den yürütülecek SQL sorgusunu ayarlayın. Basit olması için, tablonun tüm içeriğini alan bir SELECT ifadesidir.
Ardından, değişikliklerinizi etkinleştirmek için Solr sunucusunu yeniden başlatın. Kullanıcı kökü olarak aşağıdaki komutu yürütün:
# systemctl solr'ı yeniden başlatSon adım, örneğin Solr web arayüzünü kullanarak verilerin içe aktarılmasıdır. Düğüm seçim kutusu, düğüm arabalarını seçer, ardından Dataimport girişinin altındaki Düğüm menüsünden, ardından Komut menüsünden tam içe aktarma seçimini yapar. Son olarak, Yürüt düğmesine basın. Aşağıdaki şekil, Solr'un verileri başarıyla indekslediğini göstermektedir.
Adım 4: DBMS'den veri sorgulama
Önceki makale [3], verileri ayrıntılı olarak sorgulama, sonucu alma ve istenen çıktı biçimini (CSV, XML veya JSON) seçme ile ilgilidir. Verilerin sorgulanması, daha önce öğrendiklerinize benzer şekilde yapılır ve kullanıcı tarafından herhangi bir fark görülmez. Solr, perde arkasındaki tüm işleri yapar ve seçilen Solr çekirdeği veya kümesinde tanımlandığı şekilde bağlı PostgreSQL VTYS ile iletişim kurar.
Solr'un kullanımı değişmez ve sorgular Solr yönetici arayüzü veya komut satırında curl veya wget kullanılarak gönderilebilir. Solr sunucusuna belirli bir URL ile bir Alma isteği gönderirsiniz (sorgulama, güncelleme veya silme). Solr, DBMS'yi bir depolama birimi olarak kullanarak talebi işler ve isteğin sonucunu döndürür. Ardından, yanıtı yerel olarak sonradan işleyin.
Aşağıdaki örnek, “/select” sorgusunun çıktısını göstermektedir?q=*. *” Solr yönetici arayüzünde JSON formatında. Veriler, daha önce oluşturduğumuz veritabanı arabalarından alınır.
Sonuç
Bu makale, Apache Solr'dan bir PostgreSQL veritabanının nasıl sorgulanacağını gösterir ve ilgili kurulumu açıklar. Bu dizinin sonraki bölümünde, birkaç Solr düğümünü bir Solr kümesinde nasıl birleştireceğinizi öğ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
- [1] Apache Solr, https://lucene.apache.kuruluş/solr/
- [2] Frank Hofmann ve Jacqui Kabeta: Apache Solr'a Giriş. 1. Bölüm, https://linuxhint.com/apache-solr-setup-a-node/
- [3] Frank Hofmann ve Jacqui Kabeta: Apache Solr'a Giriş. Veri Sorgulama. 2. Bölüm, http://linuxhint.com
- [4] PostgreSQL, https://www.postgresql.kuruluş/
- [5] Younis Said: Ubuntu 20'de PostgreSQL Veritabanı Nasıl Kurulur ve Kurulur.04, https://linuxhint.com/install_postgresql_-ubuntu/
- [6] Frank Hofmann: Debian GNU/Linux 10'da PostgreSQL'i PostGIS ile kurma, https://linuxhint.com/setup_postgis_debian_postgres/
- [7] Ingres, Wikipedia, https://tr.wikipedia.org/wiki/Ingres_(veritabanı)