VERALTET: Die Verwendung dieses Repositorys ist veraltet. Bitte verwenden Sie stattdessen Scout Extended – https://github.com/algolia/scout-extended.
Eine Sammlung nützlicher Makros zur Erweiterung der Laravel Scout-Funktionen bei Verwendung der Algolia-Engine.
Ziel dieses Pakets ist es, eine Reihe von Makros bereitzustellen, um die Vorteile der Algolia-spezifischen Funktion zu nutzen.
Ziehen Sie das Paket mit Composer herunter
composer require algolia/laravel-scout-algolia-macros
Als Nächstes sollten Sie AlgoliaScoutMacrosServiceProvider
zum providers
Array Ihrer Konfigurationsdatei config/app.php
hinzufügen:
Algolia ScoutMacros ServiceProvider ::class
count
Die Zählmethode gibt die Anzahl der Ergebnisse nach der Anfrage an Algolia zurück.
Der Sinn besteht darin, das Abrufen von Daten aus der Datenbank und den Aufbau der Sammlung zu vermeiden.
$ nbHits = Model :: search ( ' query ' )-> count ();
hydrate
Die hydrate
-Methode ähnelt der Standardmethode get(), außer dass sie die Modelle aus Ihrem Algolia-Index hydratisiert.
Standardmäßig verwendet Scout die IDs der Ergebnisse von Algolia und ruft die Daten aus der lokalen Datenbank ab, um die Sammlung zu erstellen.
Daher wird hydrate
viel schneller erfolgen als get
.
Hinweis : Wenn Sie diese Methode verwenden, müssen Sie sicherstellen, dass Sie Ihren Algolia-Index ordnungsgemäß mit Ihrer Datenbank synchronisieren, um das Auffüllen veralteter Daten zu vermeiden.
Standardmäßig fügt diese Methode alle Attribute aus dem Datensatz von Algolia zu Ihrem Modell hinzu. Wenn Sie sensible oder irrelevante Daten aus Ihrem Modell entfernen möchten, haben Sie zwei Möglichkeiten.
Sie können in Ihrem Algolia-Dashboard eine Liste abrufbarer Attribute festlegen. In diesem Fall gibt Algolia nur diese Attribute zurück, während weiterhin alle searchableAttributes
durchsucht werden.
Sie können auch die laravel $guarded
-Attribute Ihrer Modellklasse verwenden. Wenn Sie beispielsweise das _h
Attribut nicht in Ihrer Sammlung sehen möchten, steht Ihnen Folgendes zur Verfügung.
namespace App ;
use Illuminate Database Eloquent Model ;
use Laravel Scout Searchable ;
class People extends Model
{
use Searchable ;
protected $ guarded = [ ' _highlightResult ' ];
}
with
Mit der Methode with
erhalten Sie vollständigen Zugriff auf den Algolia-Optionsparameter. Dadurch können Sie die Suchparameter genau so anpassen, wie Sie es direkt mit der Algolia-PHP-Bibliothek tun würden.
$ 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
Die Methode aroundLatLng
fügt der Suchanfrage einen Geolocation-Parameter hinzu. Sie können einen Punkt mit seiner Koordinate definieren.
Beachten Sie, dass es sich bei dieser Methode um reinen syntaktischen Zucker handelt, den Sie with
verwenden können, um weitere Standortdetails anzugeben (z. B. den Radius).
// Models around Paris latitude and longitude
Model :: search ( ' query ' )-> aroundLatLng ( 48.8588536 , 2.3125377 )-> get ();
Es können auch Where-Klauseln hinzugefügt werden
Model :: search ( ' query ' )
-> aroundLatLng ( 48.8588536 , 2.3125377 )
-> where ( ' something_id ' , 1 )
-> get ();
Sie können gerne ein Problem öffnen, um ein Makro anzufordern.
Öffnen Sie eine beliebige Pull-Anfrage, damit wir darüber sprechen und das Paket verbessern können. ?