VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa/Busca

Motor de busca e reindexação

Consulta qual motor atende a busca da loja, cria ou reconfigura o índice e reconstrói o índice quando o catálogo e a busca saem de sincronia.

A busca da vitrine não consulta o catálogo direto: ela consulta um índice, uma cópia dos produtos organizada para busca rápida. O índice é atualizado quando um produto muda, mas pode ficar para trás depois de uma carga em massa, de uma restauração de backup ou de uma falha do motor. Estas rotas servem para ver o estado do índice e reconstruí-lo. Todas exigem manage_settings; as três com meili exigem também o módulo search-management ligado (sem ele, 403 module_disabled).

GET/api/v1/admin/search/meili/statusAdmin

Estado do motor de busca

Mostra qual motor atende a busca da loja, se está acessível, quantos produtos estão indexados e quando foi a última indexação.

POST/api/v1/admin/search/meili/ensure-indexAdmin

Cria ou reconfigura o índice do Meilisearch

Garante que o índice da loja exista no Meilisearch com a configuração atual (campos pesquisáveis, filtros, ordenação). É seguro repetir. Use depois de ligar o Meilisearch pela primeira vez ou quando a configuração da busca mudou. Só faz sentido quando a loja usa o Meilisearch; sem ele, devolve erro. Sem corpo.

POST/api/v1/admin/search/meili/reindexAdmin

Reconstrói o índice em segundo plano

Reconstrói o índice com todos os produtos ativos. Responde na hora (202) e o trabalho continua em segundo plano; acompanhe last_indexed_at e total_indexed em status. Usa o motor ativo da loja: Meilisearch quando há, senão o índice vetorial. Se a loja só tem a busca direta no banco, não há o que reconstruir e a resposta é 503. Sem corpo.

POST/api/v1/admin/search/reindexAdmin

Reconstrói o índice de texto completo (síncrono)

Apaga o índice de texto completo da loja e o recria com os produtos ativos. Diferente de meili/reindex, esta chamada é síncrona: só responde quando termina, o que em catálogos grandes pode levar minutos. Não depende do módulo search-management. Sem corpo.

Exemplo de requisição

bash
curl "$BASE_URL/api/v1/admin/search/meili/status" -H "Authorization: Bearer $TOKEN"

curl -X POST "$BASE_URL/api/v1/admin/search/meili/reindex" -H "Authorization: Bearer $TOKEN"

Resposta

200Estado do motor
json
{
  "meilisearch_available": false,
  "meilisearch_url": "(not configured)",
  "total_indexed": 6012,
  "last_indexed_at": "2026-10-10T03:02:11Z",
  "index_stats": { "number_of_documents": 6012, "is_indexing": false },
  "engine": "vector",
  "engine_label": "Busca vetorial",
  "engine_url": "https://busca.example.com",
  "available": true,
  "reindex_available": true
}
202Reindexação iniciada
json
{ "message": "reindex started", "status": "accepted", "engine": "meilisearch" }
200Reindexação síncrona concluída
json
{ "message": "reindex completed" }

Campos do estado

enginestring
meilisearchvectordatabase
Motor que está atendendo a busca.
engine_labelstring
Nome do motor para exibição, em português.
engine_urlstring
Endereço do motor, com credenciais ocultas. Vazio no motor database.
availableboolean
true quando o motor ativo está conectado e atendendo.
reindex_availableboolean
true quando o motor tem um índice que pode ser reconstruído (false em database).
meilisearch_availableboolean
Se há um Meilisearch acessível.
meilisearch_urlstring
Endereço do Meilisearch, mascarado. (not configured) quando não há.
total_indexedinteger
Produtos no índice do motor ativo.
last_indexed_atstring
Última indexação completa, RFC 3339. Ausente se nunca houve.
index_statsobject
Estatísticas do índice (number_of_documents, is_indexing...). O conteúdo varia com o motor.

Erros

StatusQuandoCorpo de exemplo
401Token ausente ou expirado{"error":"invalid or expired token"}
403Falta manage_settings{"error":"insufficient privileges","required":"manage_settings"}
403Módulo search-management desligado (rotas meili/*){"error":"module_disabled","module":"search-management"}
503meili/reindex em loja que só tem busca no banco{"error":"no rebuildable search index for this tenant","detail":"search is served directly from the database (no Meilisearch/vector index configured)"}
500Falha ao criar o índice, ler o estado ou reindexar{"error":"failed to ensure meilisearch index","detail":"..."}
Durante a reindexação síncrona a busca pode vir incompleta

POST /search/reindex primeiro apaga o índice e depois o reconstrói. Enquanto roda, a busca da vitrine pode devolver menos resultados, ou nenhum. Rode fora do horário de pico e não repita enquanto a primeira chamada não responder.

Nem toda loja tem o módulo

Se meili/status responde 403 module_disabled, a loja não tem o módulo search-management ligado. A busca continua funcionando normalmente; o que falta é o painel de controle do índice.

Veja também

  • Estatísticas de busca
  • Redirecionamentos por termo
  • Busca
Anterior
Estatísticas de busca
Próxima
Redirecionamentos por termo
Nesta página
  • Exemplo de requisição
  • Resposta
  • Erros
  • Veja também