Cómo hacer que ElasticPress devuelva los resultados correctos por idioma
Aprenda a configurar la búsqueda multilingüe en un sitio de WordPress que utiliza WPML y ElasticPress. El plugin de compatibilidad WPML ElasticPress crea un índice de Elasticsearch independiente para cada idioma de su sitio, de modo que un visitante que busca desde la versión en francés obtiene resultados en francés (nunca mezclados con los en inglés o japonés). Esta página cubre la configuración, la sincronización por idioma y, lo que es más importante, cómo verificar que la búsqueda devuelve los resultados correctos en cada idioma.
No hay nada que traducir en la integración de ElasticPress. El plugin de compatibilidad hace que ElasticPress devuelva resultados correctos según el idioma de forma automática; su trabajo consiste en instalar los componentes, ejecutar la sincronización inicial y confirmar que los resultados se vean bien.
Antes de empezar
Instale y active estos plugins en el mismo sitio:
- ElasticPress. El plugin gratuito de código abierto de 10up, disponible en WordPress.org.
- El núcleo de WPML junto con WPML Traducción de cadenas.
- WPML ElasticPress. El plugin de compatibilidad. Descárguelo desde la página de descargas de su cuenta de WPML.
También necesita un punto de enlace de Elasticsearch: autoalojado o un servicio gestionado como ElasticPress.io, Elastic Cloud o AWS OpenSearch. Configure ElasticPress con su host de Elasticsearch y confirme que indexa correctamente en un sitio de un solo idioma antes de añadir la capa de WPML.
Configure sus idiomas de WPML antes de ejecutar la primera sincronización.
Cómo funciona la indexación por idioma
WPML ElasticPress crea un índice de Elasticsearch independiente para cada idioma de su sitio. El índice de cada idioma contiene:
- Las traducciones a ese idioma para cada tipo de contenido traducible.
- Las entradas en el idioma predeterminado para cualquier tipo de contenido configurado para recurrir al idioma predeterminado cuando no existe una traducción.
- Las copias de las entradas no traducibles. El índice de cada idioma las incluye para que puedan aparecer en los resultados de búsqueda independientemente del idioma del visitante.
Cada documento en un índice de idioma se analiza en ese idioma. Las palabras vacías, la derivación, las abreviaturas y el manejo de plurales y tiempos verbales son específicos de cada idioma. Esto es lo que hace que la búsqueda en francés coincida con las raíces francesas y la búsqueda en japonés coincida con la morfología japonesa; sin un análisis por idioma, el motor de búsqueda aplicaría las reglas de un idioma al texto de todos los demás idiomas.
Para la búsqueda de cada visitante, WPML ElasticPress dirige la consulta al índice del idioma correspondiente. El grupo de resultados ya está filtrado al idioma correcto antes de que comience la clasificación de relevancia.
Ejecute la sincronización inicial
Con los cuatro plugins activos y un punto de enlace de Elasticsearch configurado en ElasticPress, ejecute la sincronización inicial:
- Abra ElasticPress > Sync en el panel de administración de WordPress.
- Haga clic en Start Sync.
WPML ElasticPress activa una sincronización por idioma y crea los índices por idioma uno tras otro. En un sitio grande, esto puede tardar unas horas; la página informa del progreso a medida que se ejecuta la sincronización.
Si está actualizando de WPML ElasticPress 1.0 a 2.0 o posterior, vuelva a indexar. El formato del índice cambió cuando la versión 2.0 introdujo los índices por idioma.
Después de la sincronización inicial, las actualizaciones de contenido fluyen al índice correcto automáticamente. Siempre que crea, modifica o elimina una entrada, WPML ElasticPress actualiza el índice de idioma correspondiente en segundo plano en función del idioma de esa entrada o de la configuración de traducción de su tipo de contenido.
Indexar idiomas específicos con WP-CLI
Para sitios grandes, tareas programadas, scripts de implementación o cualquier flujo de trabajo donde la interfaz de usuario del panel de administración no sea una opción, WPML ElasticPress proporciona un comando de WP-CLI (wp wpml_elasticpress sync) que envuelve la propia sincronización de CLI de ElasticPress y añade un indicador --post-lang para la selección del idioma.
Ejecutar la sincronización inicial solo para las entradas en inglés:
wp wpml_elasticpress sync --setup --post-type=post --post-lang=en
El indicador --setup borra los índices existentes antes de reconstruirlos. Después de este comando, la búsqueda en inglés devuelve resultados en inglés; las búsquedas de otros idiomas no devuelven nada porque sus índices aún no se han creado.
Añadir un segundo idioma sin borrar los índices existentes:
wp wpml_elasticpress sync --post-type=post --post-lang=fr
Repita este proceso para cada idioma adicional. Omita --setup para que los idiomas indexados previamente se mantengan en su lugar.
Sincronizar varios idiomas en una sola ejecución:
wp wpml_elasticpress sync --post-lang=en,es
Ajustar el tamaño del lote si la memoria es limitada:
wp wpml_elasticpress sync --per-page=200
El tamaño predeterminado del lote es de 350; reducirlo ayuda en servidores con memoria limitada.
Reconstruir todos los índices desde cero:
wp wpml_elasticpress sync --setup
Esto borra todos los índices de idiomas y los reconstruye todos. Utilice esta opción cuando algo parezca incorrecto en todos los idiomas o después de una actualización importante.
Cómo comprobar que las búsquedas de ElasticPress devuelven el contenido en el idioma correcto
La sincronización técnica es sencilla; el valor de esta página reside en la verificación. Siga estas comprobaciones después de que se complete la sincronización inicial, y de nuevo cada vez que cambie el contenido o la configuración que afecten al comportamiento de la búsqueda.
1. La búsqueda devuelve resultados del mismo idioma desde cada idioma
Desde el front-end, cambie el selector de idiomas a cada idioma sucesivamente y busque un término que sepa que existe en forma traducida.
- Correcto. La página de resultados muestra solo las entradas en ese idioma.
- Incorrecto. Los resultados de otros idiomas aparecen junto a las coincidencias del mismo idioma. Es posible que la sincronización no se haya completado para ese idioma; compruebe si hay errores en ElasticPress > Sync y vuelva a ejecutar el comando de WP-CLI específico del idioma.
2. El contenido exclusivo del idioma de origen devuelve cero resultados en otros idiomas
Elija una entrada que exista solo en su idioma predeterminado (sin traducción en los otros idiomas del sitio). Desde una versión del sitio que no sea en el idioma predeterminado, busque una frase de esa entrada.
- Correcto. Cero resultados. La entrada no está traducida al idioma del visitante, por lo que no debería aparecer.
- Incorrecto. La entrada aparece en los resultados. Esto suele significar que el tipo de contenido está configurado para recurrir al idioma predeterminado en WPML > Configuración > Traducción de tipos de entrada. Se trata de una configuración a nivel de WPML, no de un error. Si no pretendía usar este comportamiento alternativo, cambie la configuración.
3. Las entradas relacionadas se mantienen en el mismo idioma
Abra una entrada traducida en el front-end. El widget de Related Posts debería mostrar solo otras entradas en el mismo idioma.
- Correcto. Cada entrada relacionada enlaza a contenido en el mismo idioma que la página actual.
- Incorrecto. Aparecen entradas relacionadas de otros idiomas. Confirme que la característica Related Posts está activada en ElasticPress > Features y que el índice de idioma para el idioma actual ha terminado de sincronizarse.
4. La búsqueda de documentos filtra por idioma
Si la característica Documents está activada en ElasticPress: suba un PDF traducido a la versión en el idioma de origen de una entrada y, a continuación, suba un PDF en otro idioma a su traducción. Busque una frase que aparezca solo en el PDF traducido.
- Correcto. La búsqueda desde el front-end del idioma coincidente devuelve el PDF correcto; la búsqueda en el idioma de origen no devuelve el PDF traducido y viceversa.
- Incorrecto. Aparecen archivos PDF de otros idiomas en los resultados. Vuelva a sincronizar después de activar Documents. El comando
wp wpml_elasticpress sync --setupreconstruye todos los índices con la indexación de documentos.
5. Las búsquedas en el panel de administración (términos, comentarios, usuarios) se filtran por idioma
Si ha activado las características Terms, Comments o Users en ElasticPress > Features, búsquelas desde el panel de administración de WordPress y confirme que los resultados se filtran por el idioma actual de administración. Esto afecta a los usuarios que buscan en el panel de administración de un sitio multilingüe.
6. La sincronización de multisitio no borra los índices de los sitios hermanos
Si ejecuta WPML y ElasticPress en una red multisitio, ejecute una sincronización de índice en un sitio y luego compruebe los otros sitios de la red. Sus índices deberían seguir intactos.
- Correcto. Al indexar un sitio, los índices de los sitios hermanos se mantienen intactos.
- Incorrecto. Los índices hermanos están vacíos. Deténgase, vuelva a ejecutar las sincronizaciones en los sitios afectados e informe del problema al soporte de WPML para que puedan confirmar si se enfrenta a un problema histórico de multisitio o a uno nuevo.
Si se superan todas las comprobaciones anteriores, su búsqueda multilingüe funciona según lo previsto.
Características de ElasticPress compatibles
Actualmente, WPML ElasticPress hace que las siguientes características de ElasticPress reconozcan el idioma:
- Post Search. Búsqueda en el front-end en entradas, páginas y tipos de contenido personalizados.
- Related Posts. El widget de entradas relacionadas filtra las coincidencias del mismo idioma.
- Documents. Búsqueda dentro de archivos PDF adjuntos,
.docx,.pptxy otros tipos de archivos. - Terms, Comments y Users. Búsquedas en el panel de administración.
Las características de búsqueda específicas de WooCommerce de ElasticPress (descubrimiento de productos, filtrado de productos por facetas, búsqueda instantánea de productos en catálogos) no son multilingües en este momento. La cobertura multilingüe para la búsqueda de WooCommerce está en la hoja de ruta de WPML; hasta que llegue, la búsqueda de WooCommerce en sitios multilingües fluye a través del manejo estándar de WooCommerce Multilingual de WPML, no a través de ElasticPress.
Errores comunes
- La sincronización no se ejecutó después de activar una nueva característica de ElasticPress. Activar Documents o Related Posts en ElasticPress > Features no añade esos documentos al índice de forma retroactiva. Vuelva a sincronizar después de activar o desactivar características.
- Sincronización de WP-CLI sin
--setupdespués de un cambio importante. Si ha cambiado qué tipos de contenido son traducibles, qué características están activadas o ha actualizado WPML ElasticPress a una nueva versión principal, ejecutewp wpml_elasticpress sync --setuppara reconstruir todos los índices desde cero. - La plantilla de resultados de búsqueda del tema omite los filtros de ElasticPress. Algunos temas personalizados implementan su propia consulta de resultados de búsqueda que no pasa por ElasticPress. Si los resultados se ven mal solo en el front-end (y pasan las comprobaciones del panel de administración), es posible que la plantilla del tema necesite una actualización.
- La búsqueda de productos de WooCommerce devuelve resultados en varios idiomas mezclados. Esto no es un problema de sincronización. Se trata de la falta de cobertura de WooCommerce mencionada anteriormente. Por ahora, dirija la búsqueda de productos a través del manejo estándar de WooCommerce Multilingual.
- El texto de los documentos no aparece en la búsqueda. Confirme que la característica Documents está activada en ElasticPress > Features y que se ha ejecutado una sincronización desde que se activó.
Escrito por Amir · Última actualización: 2 de julio de 2026
Escrito por Amir · Última actualización 2 de julio de 2026