Cómo implementar la funcionalidad de búsqueda en Node.js usando la API de Algolia
Obtenga excelentes resultados de búsqueda para su contenido utilizando el mismo motor de búsqueda que impulsa Hacker News.
Una búsqueda eficiente es una característica vital de la mayoría de las aplicaciones y sitios web modernos. Con la API de Algolia, puede implementar una potente funcionalidad de búsqueda que mejora significativamente la experiencia del usuario.
Ya sea que esté creando un blog, una plataforma de comercio electrónico o cualquier aplicación que necesite búsquedas, Node.js es una poderosa tecnología web para hacerlo. Algolia le proporciona una gran plataforma sobre la que construir un sólido sistema de búsqueda.
¿Qué es Algolia?
Algolia es un motor de búsqueda alojado que le proporciona una plataforma y herramientas para implementar búsquedas eficientes y flexibles en sitios web y aplicaciones. Algolia tiene dos componentes: búsqueda y análisis.
Con Algolia, puede crear excelentes experiencias de búsqueda para sus usuarios y luego utilizar herramientas para analizar y extraer información significativa de su aplicación.
Algolia también ofrece una API de desarrollador y SDK de soporte para permitir una integración perfecta con aplicaciones creadas en varios idiomas. Esto brinda el doble beneficio de una API para potencia de bajo nivel y un SDK para un desarrollo más sencillo de un comportamiento común.
Algolia requiere que usted se registre para obtener una cuenta para integrar su búsqueda en sus aplicaciones Node.js. Inicie sesión en Algolia.com para registrarse de forma gratuita.
Cómo obtener las credenciales de la API de desarrollador de Algolia
Para implementar la búsqueda de Algolia, necesita crear una aplicación para su proyecto. Cuando te registras, Algolia crea una nueva aplicación llamada Mi primera aplicación para ti, y puedes elegir usarla o crear una nueva.
Obtener sus credenciales API es muy fácil desde el panel. Hay una lista de opciones que incluyen Claves API:
Cuando haces clic en Claves API, verás una página con credenciales diferentes. Todo lo que necesita para la integración básica es el ID de la aplicación y la Clave API de administrador.
Ahora que ha configurado una aplicación Algolia, está listo para integrarla en su aplicación Node.js.
Implementación de la funcionalidad de búsqueda con Algolia
Algolia ofrece un SDK de cliente para una amplia gama de lenguajes de programación, incluido Node.js, que sigue siendo la mejor opción para JavaScript del lado del servidor. El SDK de Node.js facilita el uso de Algolia con JavaScript.
Comience instalando el paquete npm algoliasearch:
npm install algoliasearch
El siguiente paso es inicializar el cliente en su proyecto. En un archivo llamado algolia.js, importe algoliasearch y luego inicialice un nuevo cliente usando sus credenciales API:
const Algolia = require("algoliasearch")
const ALGOLIA_APP_ID = 'YOUR_APPLICATION_ID' || process.env.ALGOLIA_APP_ID
const ALGOLIA_ADMIN_KEY = 'YOUR_ADMIN_KEY' || process.env.ALGOLIA_ADMIN_KEY
const algoliaClient = new Algolia(ALGOLIA_APP_ID, ALGOLIA_ADMIN_KEY);
Utilizará la instancia del cliente Algolia para operaciones adicionales en su proyecto.
Algolia utiliza índices de búsqueda para almacenar datos que puede buscar. Un índice de búsqueda es similar a una tabla de base de datos que puede consultar para obtener datos. Después de inicializar su cliente, necesita crear un índice para almacenar datos. Por ejemplo, así es como puedes crear un índice para almacenar automóviles:
const carsIndex = algoliaClient.initIndex("cars")
Esta línea crea un índice en su aplicación llamado cars y almacena una referencia a él en la variable carsIndex.
A continuación, debe agregar datos a su índice para poder buscarlos. Siempre debe preparar sus datos como una matriz de objetos y asegurarse de que cada objeto tenga la propiedad objectID para identificarlo de forma única.
Escriba un código para definir los datos que desea agregar al índice de Algoila:
const cars = [
{ objectID: '1', brand: 'Toyota', model: 'Camry', year: '2022', color: 'Silver' },
{ objectID: '2', brand: 'Honda', model: 'Civic', year: '2021', color: 'Red' },
{ objectID: '3', brand: 'Ford', model: 'Mustang', year: '2020', color: 'Black' },
{ objectID: '4', brand: 'Chevrolet', model: 'Corvette', year: '2023', color: 'Yellow' },
{ objectID: '5', brand: 'BMW', model: 'X5', year: '2022', color: 'White' }
];
Algolia utiliza el método saveObjects para agregar datos a un índice específico. Esta función acepta una lista de objetos como argumento y devuelve una promesa. Puede utilizar la palabra clave await si necesita utilizar sus datos de salida.
Así es como agregarías todos los autos en la matriz cars al carsIndex en tu aplicación Algolia:
carsIndex.saveObjects(cars)
Cuando ejecute esta función, regrese al panel de su aplicación en Algolia y desplácese hacia abajo hasta los índices. Allí encontrarás el índice de coches y, al hacer clic en él, verás sus datos.
Ahora que tiene datos en su índice, puede consultarlos utilizando varios métodos de búsqueda proporcionados por Algolia.
Para consultar datos del índice cars, puede utilizar el método search del SDK y pasarle una consulta de búsqueda como argumento. La función trata la consulta como una expresión regular y devuelve cada coincidencia que encuentra en el índice.
El siguiente código define una función para buscar en el índice de automóviles mediante una consulta e imprimir los resultados.
const searchCar = async (query) => {
const data = await carsIndex.search(query)
console.log(data.hits)
}
searchCar('honda')
Cuando ejecutas este código, el programa imprimirá el objeto del automóvil que tiene un campo cuyo valor coincide con la palabra Honda. La salida se verá así:
También puede buscar valores que aparecen en otras propiedades de los objetos y la función devolverá cada coincidencia que encuentre.
Algolia te permite hacer que las propiedades se puedan buscar o no. Por ejemplo, para que solo se puedan buscar marca y modelo en el índice de automóviles, puede usar la función setSettings para configurar la restricción como se muestra en el siguiente código. demuestra.
carsIndex.setSettings({
searchableAttributes: ['brand', 'model'],
})
Esto hace que no se puedan buscar todas las demás propiedades, por lo que las consultas de búsqueda solo se ejecutarán en las propiedades marca y modelo. Excluir propiedades resulta útil cuando se crean productos del mundo real en los que hay que garantizar las mejores prácticas de seguridad y evitar que los usuarios accedan a datos privados a través de la búsqueda.
Creación de una funcionalidad de búsqueda eficiente con Algolia
Algolia es una tecnología muy poderosa y es una de las mejores opciones para implementar búsquedas ultrarrápidas en aplicaciones web. También es tolerante a errores tipográficos e incluso le permite ajustar el nivel de tolerancia a errores tipográficos en su búsqueda.
Siempre puedes confiar en el rendimiento del motor de búsqueda en tu aplicación Node.js cuando lo implementas con Algolia. Puede intentar implementar la búsqueda en una aplicación del mundo real y explorar la documentación para descubrir más sobre Algolia.