Como fazer o ElasticPress retornar os resultados certos por idioma
Aprenda a configurar a pesquisa multilíngue em um site WordPress que usa o WPML e o ElasticPress. O plugin de compatibilidade WPML ElasticPress cria um índice separado do Elasticsearch para cada idioma no seu site, para que um visitante pesquisando na versão em francês obtenha resultados em francês – nunca misturados com resultados em inglês ou japonês. Esta página abrange a configuração, a sincronização por idioma e, o mais importante, como verificar se a pesquisa retorna os resultados certos em todos os idiomas.
Não há nada para traduzir na integração do ElasticPress. O plugin de compatibilidade faz com que o ElasticPress retorne resultados corretos por idioma automaticamente; seu trabalho é instalar os componentes, executar a sincronização inicial e confirmar se os resultados estão corretos.
Antes de começar
Instale e ative estes plugins no mesmo site:
- ElasticPress. O plugin de código aberto gratuito da 10up, disponível no WordPress.org.
- Núcleo do WPML e WPML Tradução de Strings.
- WPML ElasticPress. O plugin de compatibilidade. Baixe-o na página de downloads da sua conta do WPML.
Você também precisa de um endpoint do Elasticsearch: auto-hospedado ou um serviço gerenciado como o ElasticPress.io, Elastic Cloud ou AWS OpenSearch. Configure o ElasticPress com o seu host do Elasticsearch e confirme se ele indexa com sucesso em um site de idioma único antes de adicionar a camada do WPML.
Configure seus idiomas do WPML antes de executar a primeira sincronização.
Como funciona a indexação por idioma
O WPML ElasticPress cria um índice separado do Elasticsearch para cada idioma no seu site. O índice de cada idioma contém:
- Traduções para esse idioma para cada tipo de post traduzível.
- Posts no idioma padrão para qualquer tipo de post configurado para usar o idioma padrão como substituto quando uma tradução não existir.
- Cópias de posts não traduzíveis. O índice de todos os idiomas inclui essas cópias para que possam aparecer nos resultados da pesquisa independentemente do idioma do visitante.
Cada documento em um índice de idioma é analisado nesse idioma. Palavras vazias (stopwords), radicalização (stemming), abreviações, plural e tratamento de tempo verbal são todos específicos do idioma. É isso que faz com que a pesquisa em francês corresponda aos radicais franceses e a pesquisa em japonês corresponda à morfologia japonesa; sem a análise por idioma, o mecanismo de pesquisa aplicaria as regras de um idioma ao texto de todos os outros idiomas.
Para a pesquisa de cada visitante, o WPML ElasticPress direciona a consulta para o índice do idioma correspondente. O conjunto de resultados já é filtrado para o idioma certo antes do início da classificação de relevância.
Execute a sincronização inicial
Com os quatro plugins ativos e um endpoint do Elasticsearch configurado no ElasticPress, execute a sincronização inicial:
- Abra ElasticPress > Sync no painel de administração do WordPress.
- Clique em Start Sync.
O WPML ElasticPress aciona uma sincronização por idioma e cria os índices por idioma, um após o outro. Em um site grande, isso pode levar algumas horas; a página relata o progresso à medida que a sincronização é executada.
Se você estiver atualizando do WPML ElasticPress 1.0 para o 2.0 ou posterior, reindexe. O formato do índice mudou quando a versão 2.0 introduziu os índices por idioma.
Após a sincronização inicial, as atualizações de conteúdo fluem para o índice certo automaticamente. Sempre que você cria, modifica ou exclui um post, o WPML ElasticPress atualiza o índice de idioma correspondente em segundo plano, com base no idioma desse post ou na configuração de tradução para o seu tipo de post.
Como indexar idiomas específicos com o WP-CLI
Para sites grandes, trabalhos agendados, scripts de implantação ou qualquer fluxo de trabalho em que a interface de administração não seja uma opção, o WPML ElasticPress fornece um comando do WP-CLI (wp wpml_elasticpress sync) que envolve a própria sincronização da CLI do ElasticPress e adiciona um sinalizador --post-lang para a seleção de idioma.
Execute a sincronização inicial apenas para posts em inglês:
wp wpml_elasticpress sync --setup --post-type=post --post-lang=en
O sinalizador --setup limpa os índices existentes antes da reconstrução. Após este comando, a pesquisa em inglês retorna resultados em inglês; as pesquisas em outros idiomas não retornam nada porque seus índices ainda não foram criados.
Adicione um segundo idioma sem limpar os índices existentes:
wp wpml_elasticpress sync --post-type=post --post-lang=fr
Repita para cada idioma adicional. Omita --setup para que os idiomas indexados anteriormente permaneçam no lugar.
Sincronize vários idiomas em uma única execução:
wp wpml_elasticpress sync --post-lang=en,es
Ajuste o tamanho do lote se a memória for limitada:
wp wpml_elasticpress sync --per-page=200
O tamanho padrão do lote é 350; diminuí-lo ajuda em servidores com restrição de memória.
Reconstrua todos os índices do zero:
wp wpml_elasticpress sync --setup
Isso limpa todos os índices de idioma e reconstrói todos eles. Use isso quando algo parecer errado em todos os idiomas ou após um upgrade importante.
Como verificar se as pesquisas do ElasticPress retornam conteúdo no idioma certo
A sincronização técnica é simples; o valor desta página está na verificação. Siga estas verificações após a conclusão da sincronização inicial e novamente sempre que alterar o conteúdo ou as configurações que afetam o comportamento da pesquisa.
1. A pesquisa retorna resultados no mesmo idioma a partir de cada idioma
No front-end, mude o seletor de idiomas para cada idioma, um por um, e pesquise um termo que você saiba que existe na forma traduzida.
- Aprovado. A página de resultados lista apenas posts nesse idioma.
- Reprovado. Resultados de outros idiomas aparecem ao lado de correspondências do mesmo idioma. A sincronização pode não ter sido concluída para esse idioma – verifique se há erros em ElasticPress > Sync e execute novamente o comando do WP-CLI específico do idioma.
2. O conteúdo apenas no idioma de origem retorna zero resultados em outros idiomas
Escolha um post que exista apenas no seu idioma padrão – sem tradução nos outros idiomas do site. A partir de uma versão do site que não seja no idioma padrão, pesquise uma frase desse post.
- Aprovado. Zero resultados. O post não está traduzido para o idioma do visitante, portanto não deve aparecer.
- Reprovado. O post aparece nos resultados. Isso geralmente significa que o tipo de post está configurado para usar o idioma padrão como substituto em WPML > Configurações > Tradução de tipos de post. Essa é uma configuração no nível do WPML, não um bug. Se você não pretendia usar esse substituto, altere a configuração.
3. Os posts relacionados permanecem no mesmo idioma
Abra um post traduzido no front-end. O widget Related Posts deve listar outros posts apenas no mesmo idioma.
- Aprovado. Todos os posts relacionados levam a um conteúdo no mesmo idioma da página atual.
- Reprovado. Posts relacionados de outros idiomas aparecem. Confirme se o recurso Related Posts está ativado em ElasticPress > Features e se o índice de idioma para o idioma atual terminou de sincronizar.
4. A pesquisa de documentos filtra por idioma
Se o recurso Documents estiver ativado no ElasticPress: faça o upload de um PDF traduzido para a versão no idioma de origem de um post e, em seguida, faça o upload de um PDF em um idioma diferente para sua tradução. Pesquise uma frase que apareça apenas no PDF traduzido.
- Aprovado. A pesquisa a partir do front-end no idioma correspondente retorna o PDF certo; a pesquisa no idioma de origem não retorna o PDF traduzido e vice-versa.
- Reprovado. PDFs de outros idiomas aparecem nos resultados. Sincronize novamente após ativar o recurso Documents. O comando
wp wpml_elasticpress sync --setupreconstrói todos os índices com a indexação de documentos.
5. As pesquisas no back-end (termos, comentários, usuários) filtram por idioma
Se você ativou os recursos Terms, Comments ou Users em ElasticPress > Features, pesquise-os no painel de administração do WordPress e confirme se os resultados são filtrados pelo idioma atual do painel de administração. Isso afeta os usuários que pesquisam no back-end de um site multilíngue.
6. A sincronização de multisite não limpa os índices de sites irmãos
Se você executa o WPML e o ElasticPress em uma rede multisite, execute uma sincronização de índice em um site e, em seguida, verifique os outros sites na rede. Seus índices ainda devem estar intactos.
- Aprovado. A indexação de um site deixa os índices dos sites irmãos intocados.
- Reprovado. Os índices irmãos estão vazios. Pare, execute novamente as sincronizações nos sites afetados e relate o problema ao suporte do WPML para que eles possam confirmar se você está enfrentando um problema histórico de multisite ou um novo.
Se todas as verificações acima forem aprovadas, sua pesquisa multilíngue está funcionando conforme projetado.
Recursos suportados do ElasticPress
Atualmente, o WPML ElasticPress torna os seguintes recursos do ElasticPress sensíveis ao idioma:
- Post Search. Pesquisa no front-end em posts, páginas e tipos de post personalizados.
- Related Posts. O widget de posts relacionados filtra para correspondências no mesmo idioma.
- Documents. Pesquisa dentro de PDFs anexados,
.docx,.pptxe outros tipos de arquivo. - Terms, Comments e Users. Pesquisas no back-end.
Os recursos de pesquisa específicos do WooCommerce do ElasticPress (descoberta de produtos, filtragem facetada de produtos, pesquisa instantânea de produtos em catálogos) não são multilíngues no momento. A cobertura multilíngue para a pesquisa do WooCommerce está no roteiro do WPML; até que seja lançada, a pesquisa do WooCommerce em sites multilíngues flui através do tratamento padrão do WooCommerce Multilingual do WPML, e não através do ElasticPress.
Armadilhas comuns
- A sincronização não foi executada após a ativação de um novo recurso do ElasticPress. A ativação de Documents ou Related Posts em ElasticPress > Features não adiciona retroativamente esses documentos ao índice. Sincronize novamente após alternar os recursos.
- Sincronização do WP-CLI sem
--setupapós uma mudança importante. Se você alterou quais tipos de post são traduzíveis, quais recursos estão ativados ou fez um upgrade do WPML ElasticPress passando por um limite de versão principal, executewp wpml_elasticpress sync --setuppara reconstruir todos os índices do zero. - O modelo de resultados de pesquisa do tema ignora os filtros do ElasticPress. Alguns temas personalizados implementam sua própria consulta de resultados de pesquisa que não passa pelo ElasticPress. Se os resultados parecerem errados apenas no front-end (e passarem nas verificações de administração), o modelo do tema pode precisar de atualização.
- A pesquisa de produtos do WooCommerce retorna resultados em idiomas misturados. Isso não é um problema de sincronização. É a lacuna de cobertura do WooCommerce mencionada acima. Por enquanto, direcione a pesquisa de produtos através do tratamento padrão do WooCommerce Multilingual.
- O texto de Documents não aparece na pesquisa. Confirme se o recurso Documents está ativado em ElasticPress > Features e se uma sincronização foi executada desde a sua ativação.
Escrito por Amir · Última atualização em 2 de julho de 2026
Escrito por Amir · Última atualização em 2 de julho de 2026