Laravel’de Scout Kullanarak Tam Metin Araması Nasıl Kurulur

Laravel'de Scout Kullanarak Tam Metin Araması Nasıl Kurulur

Tam metin arama, kullanıcıların zengin içerikli web sitelerinde gezinmesine izin vermek için çok önemlidir. Bu yazıda, bir Laravel uygulaması için tam metin aramanın nasıl uygulanacağını göstereceğim. Aslında, tam metin arama uygulamasını kolay ve eğlenceli hale getiren Laravel Scout kitaplığını kullanacağız.

Laravel İzci tam olarak nedir? Resmi belgeler bunu şöyle özetliyor:

Laravel Scout, Eloquent modellerinize tam metin arama eklemek için basit, sürücü tabanlı bir çözüm sunar. Scout, model gözlemcileri kullanarak arama dizinlerinizi Eloquent kayıtlarınızla otomatik olarak senkronize tutacaktır.

Temel olarak, Laravel Scout, model verilerinde bir değişiklik olduğunda indeksin manipülasyonunu yöneten bir kütüphanedir. Verilerin indeksleneceği yer, Scout kitaplığı ile yapılandırdığınız sürücüye bağlıdır.

Şu andan itibaren, Laravel Scout kitaplığı, bulut tabanlı bir arama motoru API’si olan Algolia’yı desteklemektedir ve tam metin arama uygulamasını göstermek için bu makalede kullanacağımız şey budur.

Scout ve Algolia sunucu kitaplıklarını kurarak başlayacağız ve devam ederken, verilerinizi nasıl indeksleyebileceğinizi ve arayabileceğinizi göstermek için gerçek dünyadan bir örnek üzerinden gideceğiz.

Sunucu Yapılandırmaları

Bu bölümde Scout kütüphanesinin Laravel ile çalışması için gerekli olan bağımlılıkları kuracağız. Kurulumdan sonra, Laravel’in Scout kitaplığını algılayabilmesi için biraz yapılandırma yapmamız gerekecek.

Devam edelim ve Composer kullanarak Scout kütüphanesini kuralım.

Scout kitaplığı kurulumu söz konusu olduğunda, aşağı yukarı bu kadar. Şimdi Scout kütüphanesini kurduk, hadi Laravel’in bunu bildiğinden emin olalım.

Laravel ile çalışırken, muhtemelen uygulamanızda servisleri yapılandırmanıza izin veren bir servis sağlayıcı kavramının farkındasınızdır. Bu nedenle, Laravel uygulamanızda yeni bir servisi etkinleştirmek istediğinizde, sadece ilgili servis sağlayıcı girişi eklemeniz yeterlidir. config/app.php.

Henüz Laravel servis sağlayıcılarına aşina değilseniz, kendinize bir iyilik yapmanızı ve bunu gözden geçirmenizi şiddetle tavsiye ederim. Laravel’deki hizmet sağlayıcıların temellerini açıklayan giriş makalesi.

Bizim durumumuzda, sadece eklememiz gerekiyor ScoutServiceProvider sağlayıcı, içindeki hizmet sağlayıcılar listesine config/app.phpaşağıdaki snippet’te gösterildiği gibi.

Şimdi, Laravel bunun farkında ScoutServiceProvider servis sağlayıcı. Scout kitaplığı, API kimlik bilgilerini ayarlamamıza izin veren bir yapılandırma dosyasıyla birlikte gelir.

Devam edelim ve aşağıdaki komutu kullanarak Scout kitaplığı tarafından sağlanan varlıkları yayınlayalım.

Gördüğünüz gibi kopyalamış satıcı/laravel/scout/config/scout.php dosyalamak config/scout.php.

Ardından, devam edin ve bir hesap oluşturun Algolia çünkü ilk etapta API kimlik bilgilerine ihtiyacımız olacak. API bilgisine sahip olduğunuzda, devam edelim ve gerekli ayarları yapılandıralım. config/scout.php dosya, aşağıdaki snippet’te gösterildiği gibi.

değerini belirlediğimizi unutmayın. SCOUT_DRIVER ile algolia sürücü. Bu nedenle dosyanın sonunda Algolia sürücüsü için gerekli ayarları yapılandırmanız gerekmektedir. Temel olarak, sadece ayarlamanız gerekir id ve secret Algolia hesabından aldığın bilgiler.

Gördüğünüz gibi, ortam değişkenlerinden değerler alıyoruz. Öyleyse, aşağıdaki değişkenleri ayarladığımızdan emin olalım. .env uygun şekilde dosyalayın.

Son olarak, API’leri kullanarak Algolia ile etkileşim kurmak için kullanılacak olan Algolia PHP SDK’sını kurmamız gerekiyor. Aşağıdaki snippet’te gösterildiği gibi Composer kullanarak yükleyelim.

Ve bununla birlikte, Algolia hizmetine veri göndermek ve indekslemek için gerekli olan tüm bağımlılıkları kurduk.

Modelleri Dizine Alınabilir ve Aranabilir Hale Getirme

Bir önceki bölümde, Algolia arama hizmetini kullanarak verileri indeksleyebilmek ve arayabilmek için Scout ve Algolia kitaplıklarını kurmak için tüm zor işleri yaptık.

Bu bölümde, mevcut verileri nasıl indeksleyebileceğinizi ve Algolia’dan arama sonuçlarını nasıl alabileceğinizi göstermek için bir örnek üzerinden gideceğiz. bir varsayılanın olduğunu varsayıyorum Post uygulamanızdaki model.

Yapmamız gereken ilk şey, LaravelScoutSearchable özellik Post modeli. bu yapar Post model aranabilir; Laravel, kayıt her eklendiğinde, güncellendiğinde veya silindiğinde kayıt kayıtlarını Algolia indeksi ile senkronize eder.

Bununla, Post model arama dostudur!

Ardından, ilk etapta dizine alınması gereken alanları yapılandırmak istiyoruz. Elbette, Algolia’daki modelinizin tüm alanlarını etkili ve hafif tutmak için dizine eklemek istemezsiniz. Aslında, çoğu zaman buna ihtiyacınız olmayacak.

ekleyebilirsiniz toSearchableArray dizine eklenecek alanları yapılandırmak için model sınıfında.

Şimdi, mevcut olanları içe aktarmaya ve dizine eklemeye hazırız Post Algolia’ya kaydeder. Aslında, Scout kütüphanesi aşağıdaki artisan komutunu sağlayarak bunu kolaylaştırır.

Bu, tüm kayıtları içe aktarmalıdır. Post tek seferde model! İçe aktarıldıkları anda dizine eklenirler, bu nedenle kayıtları sorgulamaya şimdiden hazırız. Devam edin ve içe aktarılan kayıtları ve diğer yardımcı programları görmek için Algolia panosunu keşfedin.

Hep Birlikte Nasıl Çalışır?

Bu bölümde, Algolia dizini ile gerçek zamanlı olarak senkronize edilen arama ve CRUD işlemlerinin nasıl gerçekleştirileceğini gösteren bir örnek oluşturacağız.

Devam edin ve app/Http/Controllers/SearchController.php Aşağıdaki içeriğe sahip dosya.

Elbette ilgili rotaları da eklememiz gerekiyor.

geçelim query Algolia’da nasıl arama yapılacağını görme yöntemi.

yaptığımızı hatırlayın. Post eklenerek aranabilir model Searchable karakter. Böylece Post modeli kullanabilir search Algolia dizininden kayıtları alma yöntemi. Yukarıdaki örnekte, aşağıdakilerle eşleşen kayıtları getirmeye çalışıyoruz. title anahtar kelime.

Sonra, orada add yeni bir gönderi kaydı ekleme iş akışını taklit eden yöntem.

Yukarıdaki kodda süslü bir şey yok; sadece kullanarak yeni bir gönderi kaydı oluşturur. Post modeli. Fakat Post modeli uygular Searchable Bu nedenle Laravel, Algolia’da yeni oluşturulan kaydı indeksleyerek bu sefer fazladan bir iş yapıyor. Gördüğünüz gibi, indeksleme gerçek zamanlı olarak yapılır.

Sonunda, orada delete yöntem. Onu da geçelim.

Beklediğiniz gibi, kayıt, veritabanından silinir silinmez Algolia dizininden hemen silinir.

Temel olarak, mevcut modelleri aranabilir hale getirmek istiyorsanız, sizin tarafınızdan ekstra bir çaba harcamanıza gerek yoktur. Her şey, model gözlemciler kullanılarak Scout kütüphanesi tarafından gerçekleştirilir.

Özel Arama Motoru/Sürücüsü Nasıl Yapılır?

Varsayılan olarak, Scout kitaplığı aşağıdakileri destekler: Algolia ve MeiliSearch sürücüler. Ek olarak, şunları da kullanabilirsiniz: database Hafif bir veritabanı için sürücü. Öte yandan, kendi özel motorunuzu uygulamak istiyorsanız, Scout bunu başarmanıza izin verir. Özel motorunuzu yazmanız ve Scout’a kaydetmeniz yeterli!

Özel motor sınıfınız şöyle görünebilir:

Tabii ki, gereksinimlerinize göre soyut yöntemler uygulamanız gerekir.

Özel motor sınıfınızı uyguladıktan sonra, onu kaydetmeniz yeterlidir. yardımı ile yapabilirsiniz. boot Aşağıdaki snippet’te gösterildiği gibi servis sağlayıcının yöntemi.

Ve son olarak, özel motorunuz kaydedildikten sonra, onu config/scout.php dosya.

Çözüm

Bugün, Laravel Scout kitaplığını kullanarak Laravel’de tam metin aramayı nasıl uygulayabileceğinizi tartıştık. Bu süreçte, bunu göstermek için gerekli kurulumları ve gerçek dünyadan bir örneği inceledik.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.