En el desarrollo de aplicaciones web, contar con una herramienta de búsqueda eficiente puede marcar la diferencia en la experiencia del usuario. Typesense es un motor de búsqueda orientado a documentos que ofrece velocidad y facilidad de uso. En este artículo, te presentamos una guía paso a paso para integrar Typesense en tu aplicación Laravel sin complicaciones.
Typesense es un motor de búsqueda de código abierto que permite realizar búsquedas rápidas y relevantes en grandes volúmenes de datos. Su objetivo es proporcionar una API de búsqueda simple y rápida, ideal para aplicaciones que necesitan manejos eficientes de datos. Esto lo convierte en una opción atractiva para desarrolladores que buscan optimizar la experiencia de búsqueda en sus aplicaciones web.
Antes de comenzar, asegúrate de tener instalado lo siguiente:
Para integrar Typesense en Laravel, primero debes instalar el paquete de PHP de Typesense. Abre la terminal y ejecuta el siguiente comando:
composer require typesense/typesense-php
Esto descargará e instalará el paquete necesario para que tu aplicación pueda comunicarse con Typesense.
Ahora que tienes instalado el paquete, es momento de configurar el cliente de Typesense. Dirígete al archivo .env de tu proyecto Laravel y agrega las siguientes variables:
TYPESENSE_API_KEY=tu_api_key TYPESENSE_HOST=localhost TYPESENSE_PORT=8108 TYPESENSE_PROTOCOL=http
Asegúrate de reemplazar tu_api_key con la clave de API que hayas configurado en tu servidor Typesense.
Para crear una instancia del cliente a nivel de aplicación, puedes hacerlo en uno de tus archivos de configuración o crear un nuevo archivo TypesenseServiceProvider.php en la carpeta app/Providers.
// app/Providers/TypesenseServiceProvider.php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Typesense\Client; class TypesenseServiceProvider extends ServiceProvider { public function register() { $this->app->singleton(Client::class, function ($app) { return new Client([ 'api_key' => env('TYPESENSE_API_KEY'), 'nodes' => [ [ 'host' => env('TYPESENSE_HOST'), 'port' => env('TYPESENSE_PORT'), 'protocol' => env('TYPESENSE_PROTOCOL'), ] ], 'connection_timeout_seconds' => 2, // El tiempo de espera en segundos ]); }); } }
Recuerda registrar tu proveedor de servicio en el archivo config/app.php en la sección de providers.
Una vez que tengas tu cliente configurado, ahora puedes crear un índice. Esto se puede hacer en un controlador. A continuación se muestra un ejemplo básico de cómo crear un índice para tus datos.
use Typesense\Client; public function createIndex(Client $client) { $client->collections->create([ 'name' => 'productos', 'fields' => [ ['name' => 'nombre', 'type' => 'string', 'facet' => false], ['name' => 'precio', 'type' => 'float', 'facet' => false], ['name' => 'categoria', 'type' => 'string', 'facet' => true], ], ]); }
Con el índice creado, el siguiente paso es indexar tus documentos. Para esto, puedes crear un array y enviarlo al índice que acabas de crear.
public function indexDocuments(Client $client) { $client->collections['productos']->documents->create([ 'id' => '1', 'nombre' => 'Product 1', 'precio' => 100.0, 'categoria' => 'Electrónica', ]); }
Finalmente, puedes realizar búsquedas en tu índice utilizando el siguiente código:
$results = $client->collections['productos']->documents->search('Product');
Esto retornará los documentos que coincidan con tu consulta.
Integrar Typesense en tu aplicación Laravel es un proceso sencillo y te permitirá mejorar la experiencia de búsqueda para tus usuarios. Si deseas conocer más sobre temas relacionados o explorar otras implementaciones, te invito a seguir leyendo más noticias y tutoriales en mi blog.
Page loaded in 22.41 ms