Pour installer et configurer Elasticsearch dans Laravel, procédez comme suit :
Étape 1 : Installer Elasticsearch
Tout d'abord, vous devez installer Elasticsearch sur votre serveur ou utiliser Elasticsearch un service cloud comme Elastic Cloud. Visitez le Elasticsearch site officiel pour télécharger la version appropriée et suivez les instructions d'installation.
Étape 2 : Installer Elasticsearch Package pour Laravel
Ensuite, installez le Elasticsearch package pour Laravel. Il existe différents package qui prennent en charge Elasticsearch dans Laravel, mais un package populaire est " Laravel Scout ". Pour installer Laravel Scout, ouvrez le terminal et exécutez la commande suivante :
composer require laravel/scout
Étape 3 : Configurer Elasticsearch dans Laravel
Après avoir installé Laravel Scout, vous devez le configurer pour l'utiliser Elasticsearch comme moteur de recherche par défaut. Ouvrez le fichier .env de Laravel et ajoutez les paramètres de configuration suivants :
SCOUT_DRIVER=elasticsearch
SCOUT_ELASTICSEARCH_HOSTS=http://localhost:9200
Où SCOUT_DRIVER
définit le moteur de recherche qui Laravel Scout utilise et SCOUT_ELASTICSEARCH_HOSTS
spécifie l' Elasticsearch URL à laquelle Scout se connectera.
Étape 4 : exécuter Migration
Ensuite, exécutez le migration pour créer la table "recherchable" pour les modèles que vous souhaitez rechercher dans Elasticsearch. Utilisez la commande suivante :
php artisan migrate
Étape 5 : Définir le modèle et attribuer une description consultable
Enfin, dans le modèle que vous souhaitez rechercher, ajoutez le Searchable
trait et définissez la description interrogeable pour chaque modèle. Par exemple:
use Laravel\Scout\Searchable;
class Product extends Model
{
use Searchable;
public function toSearchableArray()
{
return [
'id' => $this->id,
'name' => $this->name,
'description' => $this->description,
// Add other searchable fields if needed
];
}
}
Étape 6: Synchroniser les données avec Elasticsearch
Après avoir configuré et défini les modèles interrogeables, exécutez la commande pour synchroniser les données de votre base de données vers Elasticsearch:
php artisan scout:import "App\Models\Product"
Une fois terminé, Elasticsearch a été intégré à Laravel, et vous pouvez commencer à utiliser sa fonction de recherche dans votre application.