Instalar y configurar Elasticsearch en Laravel

Para instalar y configurar Elasticsearch en Laravel, siga estos pasos:

Paso 1: Instalar Elasticsearch

En primer lugar, debe instalarlo Elasticsearch en su servidor o usar Elasticsearch un servicio en la nube como Elastic Cloud. Visite el Elasticsearch sitio web oficial para descargar la versión adecuada y siga las instrucciones de instalación.

Paso 2: Instalar Elasticsearch Package para Laravel

A continuación, instale el Elasticsearch paquete para Laravel. Hay varios paquetes compatibles Elasticsearch con Laravel, pero un paquete popular es " Laravel Scout ". Para instalar Laravel Scout, abra terminal y ejecute el siguiente comando:

composer require laravel/scout

Paso 3: Configurar Elasticsearch en Laravel

Después de instalarlo Laravel Scout, debe configurarlo para usarlo Elasticsearch como motor de búsqueda predeterminado. Abra el archivo .env de Laravel y agregue los siguientes parámetros de configuración:

SCOUT_DRIVER=elasticsearch  
SCOUT_ELASTICSEARCH_HOSTS=http://localhost:9200  

Where SCOUT_DRIVER define el motor de búsqueda que Laravel Scout utiliza y SCOUT_ELASTICSEARCH_HOSTS especifica la Elasticsearch URL a la que se conectará Scout.

Paso 4: Ejecutar Migration

A continuación, ejecute migration para crear la tabla "buscable" para los modelos en los que desea buscar Elasticsearch. Usa el siguiente comando:

php artisan migrate

Paso 5: Defina el modelo y asigne una descripción de búsqueda

Finalmente, en el modelo que desea buscar, agregue el Searchable rasgo y defina la descripción de búsqueda para cada modelo. Por ejemplo:

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  
        ];  
    }  
}  

Paso 6: sincronizar datos con Elasticsearch

Después de configurar y definir los modelos de búsqueda, ejecute el comando para sincronizar los datos de su base de datos con Elasticsearch:

php artisan scout:import "App\Models\Product"

Una vez completado, Elasticsearch se ha integrado en Laravel, y puede comenzar a usar su función de búsqueda en su aplicación.