Generación de filtros y facetas usando ML
Explorando los pros y contras de automatizar la creación de filtros y facetas en una experiencia de búsqueda usando modelos de aprendizaje automático frente al enfoque tradicional codificado de forma dura.
Los filtros y facetas son mecanismos empleados para refinar los resultados de búsqueda, ayudando a los usuarios a encontrar contenido o productos relevantes más rápidamente. En el enfoque tradicional, las reglas se definen manualmente. Por ejemplo, en un catálogo de películas, atributos como el género están predefinidos para su uso en filtros y facetas. Por otro lado, con los modelos de IA, se pueden extraer automáticamente nuevos atributos de las características de las películas, haciendo el proceso más dinámico y personalizado. En este blog, exploramos los pros y los contras de cada método, destacando sus aplicaciones y desafíos.
Filtros vs facetas
Antes de empezar, definamos qué son los filtros y las facetas. Los filtros son atributos predefinidos que se emplean para restringir un conjunto de resultados. En un mercado, por ejemplo, los filtros están disponibles incluso antes de que se realice una búsqueda. El usuario puede seleccionar una categoría, como "Juegos de video", antes de buscar "PS5", refinando la búsqueda a un subconjunto más específico en lugar de a toda la base de datos. Esto aumenta significativamente las posibilidades de obtener resultados más relevantes.

Las facetas funcionan de forma similar a los filtros, pero solo están disponibles luego de realizar la búsqueda. En otras palabras, la búsqueda devuelve resultados y, a partir de ellos, se genera una nueva lista de opciones de refinamiento. Por ejemplo, al buscar una consola PS5, pueden mostrar aspectos como la capacidad de almacenamiento, el costo de envío y el color para ayudar a los usuarios a elegir el producto ideal.

Ahora que definimos filtros y facetas, hablemos del impacto de los enfoques tradicionales y basados en Aprendizaje Automático (ML) en su implementación y uso. Cada método tiene beneficios y desafíos que influyen en la eficiencia de búsqueda.
Enfoque tradicional de filtros y facetas
En este enfoque, los filtros y facetas se definen manualmente basar en reglas predefinidas. Esto significa que los atributos disponibles para perfeccionar la búsqueda están fijos y planeados con antelación, teniendo en cuenta la estructura del catálogo y las necesidades del usuario.
Por ejemplo, en un mercado, categorías como "Electrónica" o "Moda" pueden tener filtros específicos como marca, formato y rango de precio. Estas reglas se crean de forma estática, garantizando la coherencia en la experiencia de búsqueda pero requiriendo ajustes manuales cada vez que surgen nuevos productos o categorías.
Aunque este enfoque proporciona previsibilidad y control sobre los filtros y facetas mostrados, puede ver limitado cuando surgen nuevas tendencias que exigen refinamiento dinámico.
Pros:
Previsibilidad y control: Como los filtros y facetas se definen manualmente, la gestión se vuelve más sencilla.
Baja complejidad: No hace falta capacitar modelos.
Facilidad de mantenimiento: Como las reglas están predefinidas, se pueden hacer ajustes y correcciones rápidamente.
Contras:
Reindexación necesaria para nuevos filtros: Cada vez que un nuevo atributo necesita usar como filtro, todo el conjunto de datos debe reindexar para cerciorar que los documentos contengan esta información.
Falta de adaptación dinámica: Los filtros son estáticos y no se ajustan automáticamente a los cambios en el comportamiento del usuario.
Implementación de filtros/facetas – Enfoque tradicional
En Dev Tools, Kibana, crearemos una demostración de filtros/facetas usando el enfoque tradicional.
Primero, definimos la asignación para estructurar el índice:
PUT videogames
{
"mappings": {
"properties": {
"name": { "type": "text" },
"brand": { "type": "keyword" },
"storage": { "type": "keyword" },
"price": { "type": "float" },
"description": { "type": "text" }
}
}
}Los campos de marca y almacenamiento se establecen como palabra clave, lo que permite usarlos directamente en agregaciones (facetas). El campo de precios es de tipo float, lo que permite la creación de rangos de precio.
En el siguiente paso, los datos del producto se indexarán:
POST videogames/_bulk
{ "index": { "_id": 1 } }
{ "name": "Play Station 5", "brand": "Sony", "storage": "1TB", "price": 499.99, "description": "Stunning Gaming: Marvel at stunning graphics and experience the features of the new PS5. Breathtaking Immersion: Discover a deeper gaming experience with support for haptic feedback, adaptive triggers, and 3D Audio technology. Slim Design: With the PS5 Digital Edition, gamers get powerful gaming technology in a sleek, compact design. 1TB of Storage: Have your favorite games ready and waiting for you to play with 1TB of built-in SSD storage. Backward Compatibility and Game Boost: The PS5 console can play over 4,000 PS4 games. With Game Boost, you can even enjoy faster, smoother frame rates in some of the best PS4 console games." }
{ "index": { "_id": 2 } }
{ "name": "Xbox Series X", "brand": "Microsoft", "storage": "1TB", "price": 499.99, "description": "Fastest, most powerful Xbox console ever. Play thousands of titles: Every game looks and plays better on Xbox Series X. At the heart of Series X is the Xbox Velocity. Architecture, which combines a custom SSD and built-in software to significantly reduce load times in and out of game. Switch between multiple games in an instant with Quick Resume. Explore new worlds and experience the action like never before with an unparalleled 12 teraflops of graphics processing power. Enjoy 4K gaming at up to 120 frames per second, premium advanced 3D sound, and more. 4K at 120 FPS: requires compatible content and display X version - with disc drive" }
{ "index": { "_id": 3 } }
{ "name": "Nintendo Switch", "brand": "Nintendo", "storage": "512GB", "price": 299.99, "description": "SHARPER, VIBRANT VISUALS. The new 7-inch screen on the Nintendo Switch OLED takes your gaming to the next level: vibrant colors with sharp contrasts for every moment. INTEGRATED GAMEPLAY. Enjoy the console's many multiplayer modes and connect with other players. Online or locally, the fun on the Nintendo Switch is guaranteed. ENJOY IMMERSION FOR LONGER. In addition to delivering an unparalleled experience, thanks to its improved audio, the Nintendo Switch has a rechargeable battery while you play. From 4.5 hours to 9 hours of battery life. INCLUDES SUPER MARIO BROS. WONDER. Transform your world with the phenomenal flowers in this new Mario game, full of amazing adventures, power-ups and new abilities. NINTENDO SWITCH ONLINE SUBSCRIPTION. Access online games, play with friends and enjoy the exclusive benefits of the Nintendo Switch Online subscription." }
{ "index": { "_id": 4 } }
{ "name": "Steam Deck", "brand": "Valve", "storage": "512GB", "price": 399.99, "description": "You can save games, apps, photos and videos without worrying about space. High-Level Performance: The 4-core processor and graphics ensure a dynamic experience and fast responses. High-Definition Images: Smooth transitions and sharp images provide complete immersion in the game. Wireless Connectivity: Wi-Fi technology allows you to play wherever you want, without wires or cables limiting your fun" }
{ "index": { "_id": 5 } }
{ "name": "Nintendo Switch Lite", "brand": "Nintendo", "storage": "512GB", "price": 299.99, "description": "MADE TO BE PORTABLE. Nintendo Switch Lite is designed specifically for portable gaming. The console lets you jump into your favorite games wherever you are. COMPACT AND LIGHTWEIGHT. With its sleek, lightweight design, this console is ready to hit the road wherever you are. COMPATIBLE GAMES. The Nintendo Switch Lite system plays the library of Nintendo Switch games that work in handheld mode. A WORLD OF COLOR TO CHOOSE FROM. Available in a variety of vibrant and unique colors, Nintendo Switch Lite lets you bring even more personality wherever you go." }Ahora, recuperemos los aspectos tradicionales agrupando los resultados por marca, almacenamiento y rango de precio. En la consulta, se definió size:0. En este escenario, el objetivo es recuperar solo los resultados de la agregación sin incluir los documentos correspondientes a la consulta.
POST videogames/_search
{
"size": 0,
"aggs": {
"brands": {
"terms": { "field": "brand" }
},
"storage_sizes": {
"terms": { "field": "storage" }
},
"price_ranges": {
"range": {
"field": "price",
"ranges": [
{ "to": 300 },
{ "from": 300, "to": 500 },
{ "from": 500 }
]
}
}
}
}La respuesta incluirá recuentos para Marca, Almacenamiento y Precio, ayudando a crear filtros y facetas.
"aggregations": {
"brands": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Microsoft",
"doc_count": 1
},
{
"key": "Nintendo",
"doc_count": 1
},
{
"key": "Sony",
"doc_count": 1
},
{
"key": "Valve",
"doc_count": 1
}
]
},
"storage_sizes": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "1TB",
"doc_count": 2
},
{
"key": "512GB",
"doc_count": 2
}
]
},
"price_ranges": {
"buckets": [
{
"key": "*-300.0",
"to": 300,
"doc_count": 1
},
{
"key": "300.0-500.0",
"from": 300,
"to": 500,
"doc_count": 3
},
{
"key": "500.0-*",
"from": 500,
"doc_count": 0
}
]
}
}Machine learning y enfoque basado en IA para filtros y facetas
En este enfoque, los modelos de Aprendizaje Automático (ML), incluidas las técnicas de Inteligencia Artificial (IA), analizan atributos de datos para generar filtros y facetas relevantes. En lugar de depender de reglas predefinidas, ML/IA aprovecha características de datos indexados. Esto permite el descubrimiento dinámico de nuevas facetas y filtros.
Beneficios:
Actualizaciones automáticas: Se generan automáticamente nuevos filtros y facetas, sin necesidad de ajustes manuales.
Descubrimiento de nuevos atributos: Puede identificar características de datos previamente no consideradas como filtros, enriqueciendo la experiencia de búsqueda.
Reducción del esfuerzo manual: El equipo no necesita definir y actualizar constantemente las reglas de filtrado mientras la IA aprende de los datos disponibles.
Contras:
Complejidad del mantenimiento: El uso de modelos puede requerir una pre-validación para cerciorar la consistencia de los filtros generados.
Requiere conocimientos en ML e IA: La solución requiere profesionales cualificados para afinar y monitorizar el rendimiento del modelo.
Riesgo de filtros irrelevantes: Si el modelo no está bien calibrado, puede generar facetas que no son útiles para los usuarios.
Costar: El uso de aprendizaje automático e inteligencia artificial puede requerir servicios de terceros, aumentando los costos operativos.
Cabe destacar que, incluso con un modelo bien calibrado y un prompt bien elaborado, los aspectos generados deberían pasar por un paso de revisión. Esta validación puede ser manual o basar en normas de moderación, cerciorando que el contenido sea adecuado y seguro. Aunque no necesariamente supone un inconveniente, es importante cerciorar la calidad e idoneidad de los aspectos antes de que estén disponibles para los usuarios.
Implementación de filtros/facetas – enfoque de IA
En esta demostración, emplearemos un modelo de IA para analizar automáticamente las características del producto y sugerir atributos relevantes. Con un prompt bien estructurado, extraemos información del catálogo y la transformamos en filtros y facetas. A continuación, presentamos cada paso del proceso.
Inicialmente, emplearemos la API de Inferencia para registrar un endpoint para su integración con un servicio de ML. A continuación se muestra un ejemplo de integración con el servicio de OpenAI.
PUT _inference/completion/generate_filter_ia
{
"service": "openai",
"service_settings": {
"api_key": "your-key",
"model_id": "gpt-4o-mini"
}
}Ahora, definimos la tubería para ejecutar el prompt y obtener los nuevos filtros generados por el modelo.
PUT /_ingest/pipeline/generate_filter_ai
{
"processors": [
{
"script": {
"source": """ctx.prompt = "You are an expert in data organization for search and product categorization. Your task is to analyze the following product and identify the best dynamic facets that can be used in an e-commerce search experience. Product: " + ctx.name + "description: " + ctx.description + "Instructions: - Analyze the product name and description. - Extract only the dynamic facets (technological features or product characteristics that can be inferred from the description, try to create max 3 facets by characteristics found). Put the values into an array. Using key and value, e.g. dynamic_facets: [{ \"name\": \"Gaming Experience\", \"value\": \"Haptic Feedback\" },{ \"name\": \"Gaming Experience\", \"value\": \"Adaptive Triggers\" } - Return only a JSON."
"""
}
},
{
"inference": {
"model_id": "generate_filter_ia",
"input_output": {
"input_field": "prompt",
"output_field": "result"
}
}
},
{
"gsub": {
"field": "result",
"pattern": "```json",
"replacement": ""
}
},
{
"json" : {
"field" : "result",
"strict_json_parsing": false,
"add_to_root" : true
}
},
{
"remove": {
"field": "result"
}
},
{
"remove": {
"field": "prompt"
}
}
]
}Ejecutando una simulación de esta tubería para el producto "PlayStation 5", con la siguiente descripción:
Juegos impresionantes: Maravíllate con unos gráficos impresionantes y disfruta de las características de la nueva PS5.
Inmersión impresionante: Descubre una experiencia de juego más profunda con soporte para retroalimentación háptica, disparadores adaptativos y tecnología de audio 3D.
Diseño Slim: Con la Edición Digital PS5, los jugadores cuentan con una tecnología de juego poderoso en un diseño elegante y compacto.
1TB de almacenamiento: Ten tus juegos favoritos listos y esperando para jugar con 1TB de almacenamiento SSD integrado.
Retrocompatibilidad y mejora del juego: La consola PS5 puede reproducir más de 4.000 juegos de PS4. Con Game Boost, incluso puedes disfrutar de tasas de fotogramas más rápidas y fluidas en algunos de los mejores juegos de consola de PS4.
Observemos la salida de prompt generada por esta simulación.
{
"docs": [
{
"doc": {
"_index": "index",
"_version": "-3",
"_id": "1",
"_source": {
"name": "Play Station 5",
"result": """```json
{
"dynamic_facets": [
{ "name": "Storage Capacity", "value": "1TB SSD" },
{ "name": "Graphics Technology", "value": "Stunning Graphics" },
{ "name": "Audio Technology", "value": "3D Audio" }
]
}
```""",
"description": "Stunning Gaming: Marvel at stunning graphics and experience the features of the new PS5. Breathtaking Immersion: Discover a deeper gaming experience with support for haptic feedback, adaptive triggers, and 3D Audio technology. Slim Design: With the PS5 Digital Edition, gamers get powerful gaming technology in a sleek, compact design. 1TB of Storage: Have your favorite games ready and waiting for you to play with 1TB of built-in SSD storage. Backward Compatibility and Game Boost: The PS5 console can play over 4,000 PS4 games. With Game Boost, you can even enjoy faster, smoother frame rates in some of the best PS4 console games.",
"model_id": "generate_filter_ia",
"prompt": """You are an expert in data organization for search and product categorization. Your task is to analyze the following product and identify the best dynamic facets that can be used in an e-commerce search experience. Product: Play Station 5description: Stunning Gaming: Marvel at stunning graphics and experience the features of the new PS5. Breathtaking Immersion: Discover a deeper gaming experience with support for haptic feedback, adaptive triggers, and 3D Audio technology. Slim Design: With the PS5 Digital Edition, gamers get powerful gaming technology in a sleek, compact design. 1TB of Storage: Have your favorite games ready and waiting for you to play with 1TB of built-in SSD storage. Backward Compatibility and Game Boost: The PS5 console can play over 4,000 PS4 games. With Game Boost, you can even enjoy faster, smoother frame rates in some of the best PS4 console games.Instructions: - Analyze the product name and description. - Extract only the dynamic facets (technological features or product characteristics that can be inferred from the description, try create max 3 facets by characteristics found). Put the values like arrays. Using key and value, e.g. dynamic_facets: [{ "name": "Gaming Experience", "value": "Haptic Feedback" },{ "name": "Gaming Experience", "value": "Adaptive Triggers" } - Return only a JSON."""
},
"_ingest": {
"timestamp": "2025-03-19T22:14:32.0161803Z"
}
}
}
]
}Ahora se agregará un nuevo campo, dynamic_facets, al nuevo índice para almacenar las facetas generadas por la IA.
PUT videogames_1
{
"mappings": {
"properties": {
"name": { "type": "text" },
"brand": { "type": "keyword" },
"storage": { "type": "keyword" },
"price": { "type": "float" },
"description": { "type": "text" },
"dynamic_facets": { "type": "nested",
"properties": { "name": { "type": "keyword" },
"value": { "type": "keyword" } } }
}
}
}Usando la API Reindex, reindexaremos el índice de juegos de video a videogames_1, aplicando la generate_filter_ai pipeline durante el proceso. Esta tubería generará automáticamente facetas dinámicas durante la indexación.
POST _reindex?wait_for_completion=false
{
"source": {
"index": "videogames"
},
"dest": {
"index": "videogames_1",
"pipeline": "generate_filter_ai"
}
}Ahora, haremos una búsqueda y obtendremos los nuevos filtros:
GET videogames_1/_search
{
"size": 0,
"query": {
"match": {
"name": "nintendo"
}
},
"aggs": {
"dynamic_facets": {
"nested": {
"path": "dynamic_facets"
},
"aggs": {
"facets": {
"terms": {
"field": "dynamic_facets.name"
},
"aggs": {
"facets": {
"terms": {
"field": "dynamic_facets.value"
}
}
}
}
}
}
}
}Resultados:
"aggregations": {
"dynamic_facets": {
"doc_count": 3,
"facets": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "Frame Rate",
"doc_count": 1,
"facets": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "120 FPS",
"doc_count": 1
}
]
}
},
{
"key": "Gaming Resolution",
"doc_count": 1,
"facets": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "4K",
"doc_count": 1
}
]
}
},
{
"key": "Graphics Processing Power",
"doc_count": 1,
"facets": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": [
{
"key": "12 Teraflops",
"doc_count": 1
}
]
}
}
]
}
}
}Para simbolizar la implementación de las facetas, a continuación se muestra una interfaz sencilla:

El código de la interfaz que se presenta está aquí.
Conclusión
Ambos enfoques para crear filtros y facetas tienen sus beneficios y puntos de preocupación. El enfoque tradicional, basado en reglas manuales, ofrece control y costos más bajos, pero requiere actualizaciones constantes y no se adapta dinámicamente a nuevos productos o funcionalidades.
Por otro lado, el enfoque basado en IA y Aprendizaje Automático automatiza la extracción de facetas, haciendo la búsqueda más flexible y permitiendo el descubrimiento de nuevos atributos sin intervención manual. Sin embargo, este enfoque puede ser más complejo de implementar y mantener, requiriendo calibración para garantizar resultados consistentes.
La elección entre los enfoques tradicionales y basados en IA depende de las necesidades y la complejidad del negocio. Para escenarios más simples, donde los atributos de los datos son estables y previsibles, el enfoque tradicional puede ser más eficiente y fácil de mantener, evitando costos innecesarios con infraestructuras y modelos de IA. Por otro lado, el uso de ML/IA para extraer facetas puede aportar un valor significativo, mejorando la experiencia de búsqueda y haciendo que el filtrado sea más inteligente.
Lo importante es evaluar si la automatización justifica la inversión o si una solución más tradicional ya satisface eficazmente las necesidades del negocio.
Preguntas frecuentes
¿Qué son los filtros?
Los filtros son atributos predefinidos que se utilizan para restringir un conjunto de resultados.
¿Qué son las facetas?
Las facetas son una nueva lista de opciones de ajuste que se genera tras realizar una búsqueda.
¿Cuál es el enfoque tradicional respecto a los filtros y facetas?
En el enfoque tradicional de filtros y facetas, los atributos disponibles para el ajuste de la búsqueda son fijos y planificados. El enfoque es bueno para la previsibilidad, pero carece de adaptación dinámica y requiere crear nuevos filtros para la reindexación.
¿Cuál es el enfoque de machine learning (ML) para los filtros y facetas?
El enfoque de machine learning (ML) para los filtros y facetas se basa principalmente en IA. Los modelos de ML analizan los atributos de los datos para generar filtros y facetas relevantes. En lugar de basarse en reglas predefinidas, los modelos de ML e IA aprovechan las características de los datos indexados.




