Comandos Artisan (CLI)
O ecossistema do projeto conta com comandos customizados do Laravel Artisan para facilitar a orquestração do motor de busca e a sincronização de dados via terminal.
Configuração do Motor de Busca
Comando: php artisan app:configure-meilisearch
Este é o comando mais crítico para a inteligência da busca. Ele não indexa os produtos em si, mas "ensina" ao Meilisearch como ler, interpretar e priorizar os dados do índice wake_products. O script executa 6 etapas sequenciais:
- Definição de Filtros Base: Registra atributos fixos que sempre existirão para filtragem, como
brand,product_type,categorias,availability,is_televendas,sku,ean,price,exibirSite,validoeenvio em até 24h. - Descoberta Dinâmica: Faz uma varredura no banco de dados (coluna
raw_data->'atributos') para encontrar especificações técnicas variáveis (ex: voltagem, cor) e as injeta automaticamente como novos filtros no Meilisearch. - Ordenação (Sortable): Libera atributos matemáticos e booleanos para ordenação nos resultados:
price,id,estoque_total,title,percentual_descontoeavailability. - Pesos de Relevância (Searchable): Define a prioridade do "Match" de texto. A ordem importa:
- A categoria principal (
product_type) e a árvore de navegação (categorias) possuem um peso maior do que o próprio nome do produto (title). - Dados em massa como
informacoes_tecnicas_fullficam no final da fila de prioridade para evitar falsos positivos. - Agrupamento (Distinct): Configura o campo
produto_idpara agrupar as variantes (ex: P, M, G ou 110V/220V) sob o mesmo item "pai" na listagem de resultados. - Configurações Avançadas de Linguagem e IA:
- Busca Híbrida/Vetorial: Ativa o embedder
defaultcom suporte a1024dimensões, fornecidos pela IA local (userProvided). - Ranking Rules: Estabelece a hierarquia de desempate, priorizando o "Match" exato ou por proximidade antes de aplicar tolerância a erros.
- Stop Words: Ignora preposições e artigos da língua portuguesa para otimizar o processamento (ex: "de", "para", "com").
- Sinônimos: Carrega um dicionário denso com jargões regionais e técnicos do setor de ferramentas. Exemplo: quem busca por "makitinha" encontrará "serra marmore", e quem busca "110v" também verá resultados para "127v".
- Proteção contra Typos: A tolerância a erros de digitação é estritamente desativada para números e para os atributos
skueean, garantindo que uma busca por um código exato não traga produtos parecidos por aproximação.
Importação em Massa (Wake)
Comando: php artisan wake:import
Este comando serve como um gatilho manual para iniciar ou forçar uma varredura completa na base da Fbits/Wake.
- Ação: Ele instancia a classe
WakeImportServicee executa o métodosyncProducts(). - Uso: Ideal para o setup inicial do sistema ou para recuperação de dados caso o serviço de Webhooks fique fora do ar por um longo período. Durante a rotina normal, o projeto se mantém atualizado pelos eventos passivos, sem a necessidade de rodar este comando constantemente.