Cree Su Primer Índice
Cree un índice de búsqueda, comprenda el modelo de colección-alias y ejecute su primera consulta de búsqueda a través del panel.
Un índice de búsqueda en AACsearch se corresponde con una colección AACSearch con nomenclatura versionada y un alias. Crear un índice aprovisiona la colección AACSearch y registra el índice en la base de datos.
¿Qué es un índice?
Cada índice representa un catálogo de búsqueda — típicamente uno por tienda o conjunto de productos.
Organización
└── SearchIndex (slug: "products")
collectionName: "org123_products_v1" ← colección AACSearch (versionada)
aliasName: "org123_products" ← alias AACSearch (estable, siempre apunta al actual)Todas las consultas de búsqueda tienen como objetivo el alias, no la colección versionada directamente. Esto permite la reindexación sin tiempo de inactividad — se construye una nueva versión mientras la versión actual atiende el tráfico, luego el alias se intercambia de forma atómica.
Crear un índice mediante el panel
- Abra el panel SaaS en
http://localhost:3000 - Seleccione su organización del selector
- Navegue a Búsqueda → Índices
- Haga clic en Crear índice
- Ingrese un slug (por ejemplo,
products) y un nombre de visualización opcional - Haga clic en Crear
El panel llama a searchRouter.createIndex que aprovisiona la colección AACSearch
y crea la fila SearchIndex en Postgres.
Crear un índice mediante oRPC
import { orpc } from "@shared/lib/orpc-query-utils";
const index = await orpc.search.createIndex.call({
organizationId: "org_...",
slug: "products",
name: "Catálogo de productos",
});Esquema de colección predeterminado
Cuando se crea un índice, AACsearch aprovisiona una colección AACSearch con un esquema optimizado para productos:
{
"fields": [
{ "name": "id", "type": "string" },
{ "name": "title", "type": "string", "weight": 10 },
{ "name": "sku", "type": "string", "weight": 8 },
{ "name": "brand", "type": "string", "weight": 5, "facet": true },
{ "name": "categories", "type": "string[]", "weight": 5, "facet": true },
{ "name": "description", "type": "string", "weight": 2 },
{ "name": "price", "type": "float", "facet": true },
{ "name": "sale_price", "type": "float", "optional": true },
{ "name": "availability", "type": "string", "facet": true },
{ "name": "locale", "type": "string", "facet": true },
{ "name": "created_at", "type": "int64" }
],
"default_sorting_field": "_text_match"
}El esquema está definido en packages/search/lib/collections.ts y evoluciona con la versión del esquema de productos.
Ingestar su primer documento
Una vez creado el índice, envíe un documento a través del buffer de ingestión:
const result = await orpc.search.upsertDocument.call({
organizationId: "org_...",
indexSlug: "products",
document: {
id: "product-123",
title: "Auriculares inalámbricos",
sku: "WH-2024",
brand: "Acme",
categories: ["Electrónica", "Audio"],
description: "Auriculares de diadema con cancelación de ruido y 30h de batería.",
price: 99.99,
availability: "in_stock",
locale: "es",
created_at: Math.floor(Date.now() / 1000),
},
});Esto llama a enqueueManySearchIngest() que escribe en SearchIngestBuffer. El trabajador en segundo plano
lo recoge y lo reenvía a AACSearch en segundos.
Ejecutar una consulta de búsqueda
Use la pestaña Vista previa de búsqueda en el panel, o llame directamente al endpoint de búsqueda pública:
curl -X POST https://your-app.com/api/search \
-H "Authorization: Bearer ss_search_your_key" \
-H "Content-Type: application/json" \
-d '{
"indexSlug": "products",
"q": "auriculares",
"queryBy": "title,description,brand",
"page": 1,
"perPage": 10
}'Consulte Endpoint de búsqueda pública para el esquema completo de la solicitud.
Qué sucede después de la creación del índice
- La lista de verificación de Primeros pasos del panel se actualiza para marcar "Crear índice" como completado
- La pestaña Trabajos de importación queda disponible para importación masiva de CSV/JSON
- La pestaña API Keys muestra el panel de clave con ámbito de índice
- La pestaña Widget muestra el fragmento de instalación prellenado con el slug del índice
Próximos pasos
- API Keys — genere claves para su integración
- Ingestión y reindexación — importación masiva y actualizaciones de esquema
- Incorporación de conectores — conecte un CMS para sincronización automática
Desarrollo Local
Configure el monorepo de AACsearch para desarrollo local — prerrequisitos, variables de entorno, servicios Docker y ejecución de las aplicaciones.
Index Schema Reference
Complete reference for index schemas — required fields, field types, searchable/facet/sort flags, slug rules, schema validation errors, and product/content catalog examples.