← Al blog Práctica

Cómo funciona realmente la búsqueda estándar de Shopware

Por qué «handschuh» no encuentra guantes de trabajo – y qué puede configurar

Eywora Redaktion · 1 de octubre de 2026 · 8 min. Tiempo de lectura
Guantes de trabajo sobre un banco de trabajo de madera
Búsqueda O
  • solo cuentan las 8 mejores palabras
  • basta con uno de varios términos
  • con un solo término: puede perder productos
vs.
Búsqueda Y
  • cuentan todas las palabras coincidentes
  • deben coincidir todos los términos
  • con un solo término: suele encontrar bastante más

En los foros de Shopware se repiten una y otra vez las mismas preguntas: ¿Por qué la búsqueda devuelve productos que ni siquiera contienen el término buscado? ¿Por qué una sola «e» decide si un producto aparece o no? ¿Y por qué la búsqueda Y encuentra más que la búsqueda O? Las respuestas están en el código fuente. Lo hemos analizado a fondo y aquí explicamos qué ocurre: sin necesidad de saber programar, pero con el detalle suficiente para que entienda el comportamiento de su tienda.

Esto se aplica a la búsqueda estándar de Shopware 6 (basada en MySQL, sin Elasticsearch/OpenSearch). Hemos leído el código de la versión 6.7.13.0 (la lógica no cambia hasta la 6.7.14.1) y hemos probado todos los ejemplos de abajo en una tienda con Shopware 6.7.14.1.

Los ejemplos están en alemán a propósito: el problema de las palabras compuestas afecta sobre todo al alemán, y las tiendas alemanas son el público principal de Shopware.

Paso 1: Al indexar se crea un diccionario

Shopware no recorre los textos de sus productos en cada búsqueda. En su lugar, al indexar construye un diccionario de palabras clave a partir de todos los campos marcados como buscables en Settings → Search (Ajustes → Búsqueda). Los textos se dividen en palabras4:

  • todo se pasa a minúsculas,

  • se separa por espacios y signos de puntuación,

  • los guiones, guiones bajos, puntos, «+» y «@» se conservan («Montage-Feinstrickhandschuhe» sigue siendo una sola palabra),

  • las palabras compuestas no se dividen. Para Shopware, «Arbeitshandschuhe» es una única palabra.

Cada palabra se guarda dos veces: una tal cual y otra al revés («arbeitshandschuhe» y «ehuhcsdnahstiebra»). El paso 3 muestra por qué.

Paso 2: El término de búsqueda se convierte en patrones

Cuando un cliente escribe «stuhl», Shopware no busca solo esa palabra exacta. Genera varios patrones de búsqueda con comodines, en los que algunas letras pueden faltar o ser cualquiera. Para «stuhl» son, entre otros1:

Patrón

Significa

Encuentra, por ejemplo

s__hl…

s, dos caracteres cualesquiera, hl, luego cualquier cosa

stahl, stuhl

stu…

empieza por «stu»

stuhl, stufe, stuck

stu_l…

stu, un carácter cualquiera, l

stuhl

Esta es la forma de tolerancia a errores de Shopware, y explica por qué «Stuhl» también encuentra «Stahl». No es una búsqueda difusa (fuzzy) «de verdad», pero tampoco es tolerancia cero. La misma tolerancia actúa también al final de la palabra: en nuestra tienda de prueba, la búsqueda de «stuhl» devolvió también productos con la palabra inglesa «Steel» en el nombre, porque «steel» termina como «stuhl», solo que con dos letras cambiadas («st», dos caracteres cualesquiera, «l»).

Dos casos especiales:

  • Las palabras con cifras (p. ej. «m12») se buscan sin comodines, pero en cualquier posición de la palabra: «m12» también encuentra «din-m12» y «m12x40».

  • Las palabras muy cortas (hasta 2 caracteres) solo se buscan como principio de palabra.

Paso 3: Principio o final, nunca el medio

Los patrones se comparan dos veces con el diccionario: con las palabras normales y con las guardadas al revés2. Los patrones normales encuentran palabras que empiezan así. Los comparados al revés encuentran palabras que terminan así.

Lo que nunca se encuentra: un término que solo aparece en medio de una palabra más larga. Justo ese era el caso de un hilo muy comentado del foro:

Búsqueda

Nombre del producto «Arbeitshandschuhe» (guantes de trabajo)

Por qué

«handschuhe» (guantes)

✅ encontrado

«arbeitshandschuhe» termina en «handschuhe»

«handschuh» (guante)

❌ no encontrado

no está ni al principio ni al final

«arbeit» (trabajo)

✅ encontrado

«arbeitshandschuhe» empieza por «arbeit»

«strick» (punto) en «Montage-Feinstrickhandschuhe»

❌ no encontrado

está en el medio

En alemán, con sus muchas palabras compuestas (Holzschrauben, Bürostuhl, Edelstahlspüle: tornillos para madera, silla de oficina, fregadero de acero inoxidable), esta es la causa más frecuente de «El producto existe, ¿por qué la búsqueda no lo encuentra?».

Paso 4: Solo cuentan las 8 mejores palabras

A menudo muchas palabras del diccionario encajan con los patrones. Shopware las puntúa entonces, sobre todo según lo parecidas que sean al término buscado (distancia de Levenshtein: ¿cuántas letras hay que cambiar?). «stahl» está a una sola letra de «stuhl» y por eso obtiene una buena puntuación.

Importante: para la búsqueda O, Shopware utiliza después solo las 8 palabras mejor puntuadas1. Si muchas palabras tienen la misma puntuación, algo habitual con las palabras compuestas, en la práctica es el orden alfabético el que decide cuáles son esas 8. Los productos que solo encajarían a través de la novena o décima palabra se quedan fuera.

Búsqueda Y frente a búsqueda O: lo contrario de lo que se espera

En Settings → Search (Ajustes → Búsqueda) puede elegir si, con varios términos, deben aparecer todos (Y) o basta con uno (O). Lo esperable sería que O siempre encontrara más. En realidad, los dos modos también se diferencian en cuántas palabras coincidentes tienen en cuenta3:

Búsqueda O

Búsqueda Y

Palabras consideradas

solo las 8 mejores en total

todas las coincidentes, por término

Varios términos

basta con uno

deben coincidir todos

Efecto con un solo término

puede perder productos

suele encontrar bastante más

Un comerciante contó en el foro que al buscar «mull» (gasa) la búsqueda O encontró 34 artículos y la búsqueda Y, 846. Exactamente este efecto.

Consejo práctico: si sus clientes suelen escribir una sola palabra y tiene muchos nombres de producto compuestos, pruebe la búsqueda Y.

Por qué aparecen productos que no contienen la palabra

  • Campos invisibles: la palabra está en un campo buscable que la tienda no muestra, como etiquetas (tags), términos de búsqueda adicionales, nombres de categoría, propiedades o el fabricante.

  • Coincidencias por comodín: un patrón como stu… encaja con una palabra totalmente distinta en uno de esos campos.

  • Índice desactualizado: el diccionario se escribe al indexar. Tras cambiar productos o la configuración de búsqueda, vuelva a generar el índice de búsqueda.

Qué palabra encontró un producto lo puede ver en la búsqueda en vivo (Live search) en Settings → Search (Ajustes → Búsqueda), junto con los puntos de ranking.

Qué cambió en la 6.7.14 y qué no

  • 6.7.14.0: las notas de la versión mencionan una mejor puntuación cuando el término de búsqueda completo aparece como frase en el producto. Esto se aplica solo a la búsqueda con Elasticsearch/OpenSearch, no a la búsqueda estándar5.

  • Puntuación de variantes: hasta ahora se sumaban los puntos de todas las variantes de un producto, de modo que los productos con muchas variantes siempre quedaban arriba. Esto está corregido (pull request #19139)6 y, según Shopware, llegará con una de las próximas versiones. Cambia el orden, no qué productos se encuentran.

Así que la lógica de principio/final, el límite de 8 palabras y el comportamiento Y/O se mantienen.

Qué puede configurar

Sin programación, en Settings → Search (Ajustes → Búsqueda):

  1. Campos buscables y puntos de ranking: revise qué campos se buscan. Los campos invisibles con muchas palabras (descripciones largas, etiquetas) suelen causar coincidencias inesperadas.

  2. Búsqueda Y/O: pruebe ambas con sus términos de búsqueda más frecuentes.

  3. Longitud mínima del término: con 3, términos como «xl» se ignoran.

  4. Términos excluidos: palabras de relleno que solo generan ruido.

  5. Términos de búsqueda adicionales por producto: añada partes importantes de las palabras, p. ej. «handschuh» en «Arbeitshandschuhe». Es la palanca más eficaz contra el problema de las palabras compuestas, pero en catálogos grandes supone mucho mantenimiento.

  6. Vuelva a generar el índice de búsqueda después de cada cambio.

Con desarrollo: la lógica de patrones puede adaptarse mediante decoración de servicios (service decoration). Es una intervención en el flujo del núcleo que hay que revisar en cada actualización.

Cuando la búsqueda estándar llega a sus límites

Para catálogos pequeños con nombres de producto claros, la búsqueda estándar con un buen mantenimiento suele ser suficiente. Se complica con muchas palabras compuestas, términos técnicos, referencias de artículo y variantes. Entonces hay tres caminos:

  • Conectar Elasticsearch/OpenSearch y configurar uno mismo el análisis (p. ej. descomposición de palabras, n-gramas). Es potente, pero requiere conocimientos y operación.

  • Mantener términos de búsqueda de forma sistemática, p. ej. mediante importación. Ayuda, pero escala mal.

  • Usar una búsqueda especializada.

Esto último es lo que hacemos con Eywora: las palabras compuestas alemanas se dividen con ayuda de un diccionario y se reducen a su raíz, de modo que «handschuh» también encuentra «Arbeitshandschuhe». A eso se suman la búsqueda semántica para consultas en el lenguaje del cliente y un tratamiento propio de las referencias de artículo. Cuándo compensa el cambio y cuándo no lo hemos explicado con honestidad en Búsqueda estándar frente a búsqueda con IA. Por qué las búsquedas sin resultados salen tan caras lo contamos en El problema de las búsquedas sin resultados.

Fuentes

  1. Patrones y puntuación: ProductSearchTermInterpreter.php (Shopware 6.7.13.0) – https://github.com/shopware/shopware/blob/v6.7.13.0/src/Core/Content/Product/SearchKeyword/ProductSearchTermInterpreter.php ↩
  2. Consulta sobre palabras normales y al revés: KeywordLoader.php (Shopware 6.7.13.0) – https://github.com/shopware/shopware/blob/v6.7.13.0/src/Core/Content/Product/SearchKeyword/KeywordLoader.php ↩
  3. Filtro Y/O: ProductSearchBuilder.php (Shopware 6.7.13.0) – https://github.com/shopware/shopware/blob/v6.7.13.0/src/Core/Content/Product/SearchKeyword/ProductSearchBuilder.php ↩
  4. División en palabras: Tokenizer.php (Shopware 6.7.13.0) – https://github.com/shopware/shopware/blob/v6.7.13.0/src/Core/Framework/DataAbstractionLayer/Search/Term/Tokenizer.php ↩
  5. Notas de la versión 6.7.14.0, sección «Whole-phrase product-search matches rank higher» – https://github.com/shopware/shopware/blob/v6.7.14.0/RELEASE_INFO-6.7.md ↩
  6. Puntuación de variantes: Pull request #19139 – https://github.com/shopware/shopware/pull/19139 ↩
Metodología y fuentes

Las cifras mencionadas se basan en el análisis de registros de búsqueda de más de 50 tiendas B2B de industria, mayoristas y recambios (proyectos de Eywora y proyectos previos de signundsinn GmbH, periodo 2023-2026). Los valores de aumento de conversión son la media entre clientes de Eywora tras al menos 90 días en producción. Los tiempos de respuesta se miden como mediana P50. Los resultados de cada tienda pueden variar según el surtido, la calidad de los datos y el peso de la búsqueda.

Publicado el 1 de octubre de 2026 · Autor: Eywora Redaktion

¿Listo para ver cómo sería en su caso?

Demo
con su catálogo.

30 minutos en directo sobre una tienda real de cliente. Verá la búsqueda de Eywora y los add-ons en acción y después hablamos de lo que usted necesita.