TIDAK DIGUNAKAN LAGI: Penggunaan repositori ini tidak digunakan lagi. Silakan gunakan Scout Extended - https://github.com/algolia/scout-extend sebagai gantinya.
Kumpulan makro yang berguna untuk memperluas kemampuan Laravel Scout saat menggunakan mesin Algolia.
Paket ini bertujuan untuk menyediakan sekumpulan makro untuk memanfaatkan fitur khusus Algolia.
Tarik paket menggunakan composer
composer require algolia/laravel-scout-algolia-macros
Selanjutnya, Anda harus menambahkan AlgoliaScoutMacrosServiceProvider
ke array providers
file konfigurasi config/app.php
Anda:
Algolia ScoutMacros ServiceProvider ::class
count
Metode penghitungan akan mengembalikan jumlah hasil setelah permintaan ke Algolia.
Intinya adalah untuk menghindari penarikan data dari database dan membangun koleksi.
$ nbHits = Model :: search ( ' query ' )-> count ();
hydrate
Metode hydrate
mirip dengan metode get() standar, hanya saja metode ini menghidrasi model dari indeks Algolia Anda.
Secara default, Scout akan menggunakan ID hasil dari Algolia dan menarik data dari database lokal untuk membuat koleksi.
Oleh karena itu, hydrate
akan jauh lebih cepat daripada get
.
Catatan : Dengan menggunakan metode ini, Anda harus yakin bahwa Anda menjaga indeks algolia tetap sinkron dengan database Anda dengan benar untuk menghindari pengisian data yang sudah usang.
Secara default, metode ini akan menambahkan semua atribut dari data Algolia ke model Anda. Jika Anda ingin menghapus data sensitif atau tidak relevan dari model Anda, Anda memiliki dua opsi.
Anda dapat mengatur daftar atribut yang dapat diambil di dasbor Algolia Anda. Dalam hal ini, Algolia hanya akan mengembalikan atribut-atribut ini sambil tetap mencari setiap searchableAttributes
.
Anda juga dapat menggunakan atribut laravel $guarded
dari kelas model Anda. Misalnya, jika Anda tidak ingin melihat atribut _h
di koleksi Anda, Anda akan mendapatkan yang berikut ini.
namespace App ;
use Illuminate Database Eloquent Model ;
use Laravel Scout Searchable ;
class People extends Model
{
use Searchable ;
protected $ guarded = [ ' _highlightResult ' ];
}
with
Metode with
memberi Anda akses penuh ke parameter opsi Algolia. Ini memungkinkan Anda untuk menyesuaikan parameter pencarian sama persis seperti yang Anda lakukan menggunakan perpustakaan algolia php secara langsung.
$ result = Model :: search ( '' )
-> with ([ ' hitsPerPage ' => 30 ])
-> get ();
$ filters = [
' averge_ratings >= 3 ' ,
' total_reviews >= 1 '
];
$ filterString = implode ( ' AND ' , $ filters );
$ params = [
' aroundLatLng ' => $ lat . ' , ' . $ lon ,
' hitsPerPage ' => 30 ,
' page ' => 0 ,
' aroundRadius ' => 30000 , //30km
' aroundPrecision ' => 200 , //200 Meters
' getRankingInfo ' => true , //return ranking information in results
' filters ' => $ filterString // add filters
];
$ result = Model :: search ( '' )-> with ( $ params )-> get ();
aroundLatLng
Metode aroundLatLng
akan menambahkan parameter geolokasi ke permintaan pencarian. Anda dapat menentukan suatu titik dengan koordinatnya.
Perhatikan bahwa metode ini adalah gula sintaksis murni, Anda dapat menggunakan with
untuk menentukan lebih banyak detail lokasi (seperti radius misalnya)
// Models around Paris latitude and longitude
Model :: search ( ' query ' )-> aroundLatLng ( 48.8588536 , 2.3125377 )-> get ();
Dimana klausa juga dapat ditambahkan
Model :: search ( ' query ' )
-> aroundLatLng ( 48.8588536 , 2.3125377 )
-> where ( ' something_id ' , 1 )
-> get ();
Jangan ragu untuk membuka terbitan untuk meminta makro.
Buka permintaan penarikan apa pun yang Anda inginkan, sehingga kita dapat membicarakannya dan menyempurnakan paketnya. ?