De manera predeterminada, algolia busca los números que componen un SKU dentro de partes del nombre o descripción, lo que se pretende es que en la búsqueda sea una coincidencia exacta en el caso del SKU. Para ello es necesario hacer lo siguiente:
🔧 Configuración en el Dashboard de Algolia
1. Entrar al índice
Abre el Algolia Dashboard
Ve a Search → Indices → selecciona tu índice (ejemplo:
products).
2. Configurar Searchable Attributes
En el menú lateral, ve a Configuration → Searchable Attributes.
Agrega los siguientes atributos:
unordered(name)unordered(description)sku
👉 Esto hace que se pueda buscar en nombre y descripción de forma flexible, y también en el SKU.
👉 unordered(...) significa que no importa la posición de las palabras.
3. Configurar Ranking & Sorting
Ve a Configuration → Ranking & Sorting.
En Custom Ranking, agrega criterios según tu caso, por ejemplo:
desc(name)desc(price)⚡ (opcional) si tienes un campo
Sku, lo puedes usar para darle prioridad a los SKU.
👉 Si no tienes un campo adicional, puedes dejarlo vacío. Luego lo manejarás con filtros en tu app.
4. (Opcional) Crear una Rule para SKU
En el Dashboard, entra a Rules.
Crea una nueva regla:
Condition: Query contains
"{{query}}".Consequence: Añadir filtro →
sku = "{{query}}".
👉 Ojo: Algolia no soporta regex en Rules, así que esta opción solo sirve si quieres que siempre que el query sea igual a un SKU lo priorice.
👉 Para detectar si es numérico (ej. 12345) necesitas hacerlo en el frontend o backend.
5. Guardar y probar
Ve a la pestaña Search Preview del Dashboard.
Escribe un número (
12345) → debería devolverte coincidencia en el SKU.Escribe letras (
camiseta) → debería buscar por nombre y descripción.
🚀 Lo que falta del lado del código
Como el Dashboard no puede “saber” si tu query es número o texto, lo manejas con filters u optionalFilters:
