Vistas:


Resumido por IA

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

  1. En el menú lateral, ve a Configuration → Searchable Attributes.

  2. 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

  1. Ve a Configuration → Ranking & Sorting.

  2. 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

  1. En el Dashboard, entra a Rules.

  2. 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: