Installer et configurer Elasticsearch dans Laravel

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  

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.