Pular para o conteúdo

APIs baseadas em Elasticsearch

Este texto foi traduzido usando IA. Se você deseja ver o texto original em inglês, clique aqui.

Mantemos índices do Elasticsearch para todos os posts no WordPress.com e todos os posts sincronizados por meio do plugin Jetpack.

Estes documentos descrevem as estruturas de índice e as APIs disponíveis para consulta. Essas APIs alimentam recursos disponíveis no WordPress VIP e no plano Profissional do Jetpack. A API de Posts relacionados do Jetpack também aceita filtros do Elasticsearch.

Disponibilidade da API

Existem três níveis de disponibilidade:

  • WordPress VIP: Podemos criar um índice único para o seu conteúdo (taxa de configuração necessária). O código para construir o índice é open source. Frequentemente, recursos/campos experimentais ou funcionalidades que não conseguimos escalar para todos os sites são implementados aqui primeiro.
  • Plano Profissional do Jetpack: Todos os sites Jetpack Pro (incluindo todos os sites VIP) são indexados em nosso cluster global do Elasticsearch e podem ser consultados com chamadas à API de Consulta do Elasticsearch. Não oferecemos suporte a toda a DSL de consulta do ES, mas suportamos a maior parte dela.
  • Plano gratuito do Jetpack: Todos os sites são indexados para alimentar a API de Posts relacionados. A API aceita filtros personalizados do Elasticsearch.

Versões do Elasticsearch e Compatibilidade com Versões Anteriores

O projeto Elasticsearch está focado em melhorar continuamente suas APIs e, por isso, quebra regularmente a compatibilidade com versões anteriores. Nossas APIs se esforçam para manter a compatibilidade com versões anteriores e, por isso, há diversos recursos que optamos por não suportar por razões de segurança ou desempenho. Por exemplo, todo scripting está desabilitado em nossa API. Também não tentamos usar a versão mais recente do Elasticsearch porque estamos comprometidos com a compatibilidade com versões anteriores.

Nossa API de consulta se parece bastante com a API de Pesquisa do Elasticsearch da versão 2.4 do Elasticsearch. No entanto, aceitamos alguns recursos descontinuados e realizamos reescrita de consultas para manter a compatibilidade. Um bom exemplo é quando migramos do ES 1.x para o 2.x: todo o conteúdo precisou ser migrado do armazenamento no campo “content” com múltiplos analisadores para ser armazenado em um campo separado para cada analisador de idioma: “content.en”, “content.fr”, “content.default”, etc. Reescrevemos as consultas que ainda usam o campo “content”.

Bibliotecas Existentes

Provavelmente haverá momentos em que teremos que quebrar a compatibilidade com versões anteriores (esperamos que de formas menores). A melhor maneira de garantir que sua aplicação não encontre esses problemas é usar uma das bibliotecas ou filtros existentes em vez de escrever uma consulta de busca completamente personalizada:

Como código é a melhor documentação, a forma como os mapeamentos e documentos são construídos para nossos índices está disponível em grande parte no WPES-Lib. O Data.blog tem a melhor descrição de como funciona nossa indexação em tempo real.

Documentos

Indexamos todos os posts, páginas e tipos de post personalizados do WordPress desde que o status do post seja publish, trash, pending, draft, future ou private. Posts que estão disponíveis publicamente podem ser consultados pela nossa API sem autenticação. Requisições autenticadas retornarão todos os posts. No caso do Jetpack, quaisquer posts que estejam bloqueados para sincronização não estarão disponíveis em nosso índice.

Consulte o esquema de documento de post para detalhes sobre todos os campos no índice.

API de Busca

Existem limitações ligeiramente diferentes nas APIs dependendo do nível de serviço que você possui (WordPress VIP, Jetpack Pro ou Jetpack Posts relacionados). Dependendo do nível de serviço, diferentes recursos do Elasticsearch Query DSL estão disponíveis.

Consulte a API de consultas para detalhes e limitações das consultas, filtros e agregações disponíveis.

* Elasticsearch é uma marca registrada da Elasticsearch BV, registrada nos EUA e em outros países.

Última atualização: junho 19, 2026