Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Datos y Analítica

Typesense Search Engine

Usa Typesense para búsqueda instantánea y tolerante a errores tipográficos con detección automática de esquema y despliegue sencillo.

Claude Code Cursor Copilot

Descripción General

Typesense es un motor de búsqueda de código abierto y tolerante a errores tipográficos, diseñado como una alternativa amigable para desarrolladores a Algolia y Elasticsearch. Construido en C++, ofrece latencia de búsqueda de milisegundos de un solo dígito con una API REST simple. Typesense requiere definiciones de esquema explícitas que permiten consultas type-safe y mejor relevancia de búsqueda por defecto.

El motor soporta búsqueda multi-campo, facetado, filtrado, ordenamiento, búsqueda geográfica, búsqueda vectorial y agrupamiento. Su algoritmo de relevancia considera la calidad de coincidencia de texto, pesos de campo y puntuaciones de ranking personalizadas. Typesense proporciona curación integrada (fijar/ocultar resultados específicos), sinónimos y analíticas de búsqueda. La característica de búsqueda vectorial permite búsqueda semántica cuando se combina con modelos de embeddings.

Typesense puede desplegarse como un nodo único o un clúster de alta disponibilidad con elección automática de líder y replicación de datos. Typesense Cloud proporciona una oferta gestionada. El adaptador InstantSearch.js permite usar componentes de UI de Algolia InstantSearch con un backend de Typesense. El cliente JavaScript funciona tanto en Node.js como en navegadores con soporte completo de TypeScript.

¿Para Quién Es?

  • Construir búsqueda instantánea de productos con tolerancia a errores tipográficos
  • Implementar búsqueda semántica basada en vectores
  • Añadir búsqueda con UI de Algolia InstantSearch conectada a Typesense
  • Desplegar un motor de búsqueda autohospedado como alternativa a Algolia

Instalación

Configurar Claude Code
npm install typesense

Configuración

import Typesense from "typesense"

const client = new Typesense.Client({
  nodes: [{ host: "localhost", port: 8108, protocol: "http" }],
  apiKey: process.env.TYPESENSE_API_KEY!,
})

// Create collection with schema
await client.collections().create({
  name: "products",
  fields: [
    { name: "name", type: "string" },
    { name: "price", type: "float", facet: true },
    { name: "category", type: "string", facet: true },
  ],
})

// Search
const results = await client.collections("products")
  .documents().search({ q: "laptop", query_by: "name" })