Essa é uma revisão anterior do documento!
[ER_003] Requisitos - Busca Global
Descrição: Funcionalidade responsável por permitir a pesquisa unificada de conteúdos e serviços do Portal Público do TCE-GO — serviços, publicações institucionais, notícias, itens do Portal da Transparência, licitações, páginas institucionais, páginas-âncora de seção, contatos institucionais, itens dos subportais e membros do Tribunal —, com resultados ordenados por relevância ponderada pelo tipo de conteúdo e refinamento por filtros.
Demanda: #39403 (versão original) e #44015 (esta evolução).
Objetivo de negócio: Fazer com que quem procura um serviço do Tribunal chegue a ele pela busca, em vez de desistir na primeira página de resultados ou recorrer ao atendimento.
Menu / Local de acesso: Portal TCE-GO | Campo de Busca Global (cabeçalho fixo em todas as páginas)
Especificação de origem: PRD.md desta pasta, versão 2.0. Base de contexto: CONTEXT.md.
Problema, escopo e fora de escopo
Problema. A busca devolve o conteúdo certo na ordem errada, com filtros que não correspondem ao que o portal oferece e em tempo que o usuário interpreta como travamento. A consulta por “Prestação de Contas” devolve 306 resultados, com a primeira página composta integralmente por notícias; os dois serviços que correspondem exatamente ao termo ocupam as posições 18 e 19. O filtro “Tipo de serviço” não corresponde a nenhuma classificação usada no catálogo. A resposta leva de 8 a 15 segundos e, quando a busca parte do cabeçalho, nada indica que ela está em curso.
Escopo.
- Relevância com peso por tipo de conteúdo, somado à pontuação textual existente (RN12)
- Seletor de ordenação: Relevância (padrão) e Mais recentes (RN17)
- Revisão dos filtros: inclusão dos equivalentes aos dos hubs, inclusão da categoria Notícia entre os tipos filtráveis, exclusão dos filtros “Tipo de serviço” e “Tipo de conteúdo” da página, e dos campos que os alimentam (RN09)
- Período promovido a filtro transversal, sem efeito sobre a ordenação (RN17)
- Declaração dos campos pesquisáveis por tipo, em lugar da varredura de todos os metadados (RN13)
- Estado de execução visível e anunciado, no cabeçalho e na página de resultados (RN15)
- Cache do conjunto de resultados e meta de tempo de resposta verificável (RN16)
- Categoria “Hub” para as páginas-âncora de seção (RN19)
- Inclusão de contatos institucionais, itens dos subportais (Governança, Observatório do Cidadão e Primeira Infância) e membros do Tribunal entre os resultados, com peso 30, e a regra de destino para os que não possuem endereço próprio (RN21)
Fora de escopo.
- Motor de busca dedicado (Elasticsearch, OpenSearch, Algolia ou equivalente) — decisão da equipe técnica; a solução permanece em WordPress e MySQL
- Sugestão preditiva durante a digitação — removida em 2026-07-13, RN03 revogada; não retorna nesta versão
- Busca facetada com contagem por categoria
- Busca dentro do conteúdo de arquivos anexos (PDF, DOCX)
- Encaminhamento para a consulta especializada quando a busca não encontra o ato normativo — decisão do P.O. de não tratar o tema nesta demanda
- Consulta a sistemas externos ao portal — em especial a Jurisprudência e Atos Normativos, serviço à parte com motor de busca próprio, que a busca global não aciona (RN20)
- Registro dos termos buscados
- Protótipo da tela em Next.js
Atores
A funcionalidade de Busca Global está disponível no contexto público, podendo ser utilizada por usuários autenticados ou não autenticados.
| Nível | Perfil | Autenticação | Abrangência |
|---|---|---|---|
| PÚBLICO | Cidadão, jurisdicionado, advogado, licitante, imprensa e demais visitantes | Não obrigatória | Pesquisa todo o conteúdo publicado e público do Portal |
| PÚBLICO | Servidor do Tribunal consultando o Portal | Não obrigatória | Idêntica à do cidadão |
| INTERNO | Servidor responsável pela gestão de conteúdo | Sim (WP-ADMIN) | Preenche os campos que alimentam a busca — palavras-chave, assunto, resumo e classificação (RN07, RN13). Não opera tela da busca |
Comportamento atual e esperado
Medições realizadas em 2026-09-19 no ambiente tce-portal.cluster.tce.gti.br:
| Consulta | Tempo de resposta | Resultados | Composição da 1ª página |
|---|---|---|---|
?s=Prestação de Contas | 15,57 s | 306 | 10 notícias; serviços nas posições 18 e 19 |
?s=certidão | 12,03 s | 33 | 9 notícias e 1 página |
?s=pauta | 8,87 s | 304 | notícias |
?s=boleto | 8,30 s | 9 | 8 notícias e 1 página |
?s=Prestação de Contas&tipo=servico | 9,92 s | 2 | os 2 serviços |
?s=&tipo=servico (sem termo) | 0,53 s | 3 | os 3 serviços do ambiente |
| Aspecto | Comportamento atual | Comportamento esperado |
|---|---|---|
| Tipos cobertos | Serviço, publicação, notícia, item de transparência, licitação e página | Os mesmos, acrescidos de contato, item de subportal (Governança, Observatório e Primeira Infância) e membro do Tribunal, com peso 30 (RN01, RN12) |
| Ordenação | Pontuação textual sem distinção de tipo de conteúdo | Pontuação textual somada ao peso do tipo (RN12); empate pela data mais recente |
| Escolha da ordenação | Não existe; informar período troca a ordenação para data sem o usuário pedir | Seletor “Ordenar por: Relevância / Mais recentes”; período é filtro (RN17) |
| Campos varridos | Título, resumo, conteúdo e todos os metadados do registro, sem distinção de chave | Título, resumo, conteúdo e a relação declarada de campos por tipo (RN13) |
| Tipos filtráveis | Página, Publicação, Serviço, Transparência, Licitação — Notícia é omitida da lista | Serviço, Publicação Institucional, Notícia, Transparência, Licitação, Hub, Contato, Item de subportal, Membro do Tribunal e Página |
| Filtro de serviço | Público (4 perfis) e “Tipo de serviço” | Público com os 5 perfis do catálogo, incluindo Licitantes; “Tipo de serviço” deixa de existir |
| Filtro de publicação | Tipo e Tipo específico | Tipo, Tipo específico e Ano de publicação |
| Filtro de licitação | Nenhum | Modalidade, Ano e Situação |
| Filtro de página | “Tipo de conteúdo” (Informativo, Normativo, Institucional, Programa/Projeto) | Deixa de existir, junto com o campo que o alimenta; restam os filtros transversais |
| Filtro de período | Apenas para Notícia, e troca a ordenação | Transversal a todas as categorias, sem efeito sobre a ordenação |
| Correção automática do termo | O termo é substituído antes da consulta sempre que há palavra próxima, inclusive quando a busca original teria bons resultados | A consulta usa sempre o termo digitado; a correção entra apenas no resultado vazio, quando a busca corrigida é executada e os avisos “Exibindo resultados para X” e “Em vez disso, pesquisar por Y” são apresentados (RN14) |
| Vocabulário da correção | Títulos, todos os valores de metadados e os assuntos, reconstruído a cada gravação de conteúdo | Títulos, assuntos padronizados e palavras-chave, reconstruído por rotina agendada (RN14.1) |
| Feedback ao buscar pelo cabeçalho | Nenhum: a página fica inalterada de 8 a 15 s | Campo em estado de busca, ação bloqueada e estado anunciado (RN15) |
| Tempo de resposta | 8 a 15,5 s | 95% das buscas em até 3 s; nenhuma acima de 8 s (RN16) |
| Consultas por requisição | Duas: a principal do WordPress, descartada, e a da página | Uma única consulta de resultados |
Descartado da versão atual:
| Item descartado | Motivo |
|---|---|
| Filtro “Tipo de serviço” (Consulta, Emissão, Solicitação) e o campo que o alimenta | Classificação que existe só para a busca, não corresponde à organização do catálogo de serviços e não é mantida pela área |
| Filtro “Tipo de conteúdo” da página (Informativo, Normativo, Institucional, Programa/Projeto) e o campo que o alimenta | Mesmo caso: classificação criada para a busca, sem uso em qualquer outra tela e sem manutenção. A remoção elimina ainda a ambiguidade com o seletor de categoria, que tem o mesmo rótulo. O campo de assunto registrado para a página permanece |
| Substituição do termo digitado antes da consulta, em toda busca | O usuário recebe resultados de uma pergunta que não fez, mesmo quando o termo dele encontraria o que procura, e o custo do cálculo é pago em 100% das buscas. A correção permanece, acionada apenas quando a busca não encontra nada (RN14) |
| Troca automática da ordenação ao informar período | Efeito colateral não solicitado |
Telas
Tela 01 - Campo de Busca Global (cabeçalho)
Componente fixado no topo de todas as páginas do Portal, à direita do menu principal, alcançável pelo atalho Alt+2.
| Elemento | Tipo | Obrigatório | Valores Possíveis | Valor Padrão | Observação |
|---|---|---|---|---|---|
| Campo de Busca | Campo de texto | Sim | Alfanumérico, até 100 caracteres | Vazio, ou o termo da busca corrente | Aceita termo parcial, palavra-chave, nome e número de processo (RN02, RN18) |
| Não | - | – | |||
| Limpar | Botão de ícone | Não | – | Oculto | Exibido apenas com o campo preenchido; devolve o foco ao campo |
| Ícone de Lupa | Ícone acionável | Sim | – | – | Executa a pesquisa global; no estado de busca é substituído pelo girador e bloqueado (RN15) |
| Região de status | Texto para leitor de tela | – | “Buscando resultados. Aguarde…“ | Vazio | aria-live=“polite”; anuncia início e fim da busca (RN15) |
O acionamento com campo vazio não navega. O acionamento com termo preenchido leva o campo ao estado de busca antes da navegação, de modo que o sinal apareça durante todo o tempo de espera.
Tela 02 - Página de Resultados da Busca (/?s={termo})
Tela responsável por exibir os resultados da pesquisa global. Segue a anatomia dos hubs do Portal: cabeçalho com título e caminho de navegação, barra lateral de filtros à esquerda e área de resultados à direita. Em telas menores, a barra lateral é recolhida atrás da ação “Filtros e busca”.
| Elemento | Tipo | Obrigatório | Valores Possíveis | Valor Padrão | Observação |
|---|---|---|---|---|---|
| Busca | Campo de texto | Sim | Até 100 caracteres | Termo corrente | Permite reescrever o termo sem sair da página |
| Tipo de conteúdo | Seleção única | Não | Todos os tipos, Serviço, Publicação Institucional, Notícia, Transparência, Licitação, Hub, Contato, Item de subportal, Membro do Tribunal, Página | Todos os tipos | Define o escopo e quais filtros avançados são exibidos (RN05, RN09) |
| Assunto | Seleção única | Não | As opções do tema global vigente (RN10) | Todos os assuntos | Transversal; não se aplica a Transparência e Licitação (RN10) |
| Período — De / Até | Data | Não | Data válida | Vazio | Transversal; filtra pela data de publicação e não altera a ordenação (RN17) |
| Filtros Avançados | Área dinâmica | Não | Variável por categoria | Oculto | Exibidos conforme RN09 |
| Ordenar por | Seleção única | Não | Relevância, Mais recentes | Relevância | RN04, RN12, RN17 |
| Exibir | Seleção única | Não | 10, 20, 50 | 10 | Itens por página (RN06) |
| Limpar Filtros | Ação | Não | – | – | Refaz a busca apenas com o termo |
| Pesquisar | Ação | Sim | – | – | Aplica termo e filtros; leva a página ao estado de carregamento (RN15) |
| Contador | Texto | – | “Encontramos N resultados” | – | Concorda em número com o total |
| Listagem de Resultados | Lista de cards | Sim | - | Vazio | Um card por ocorrência, com etiqueta da categoria, título, resumo e data (RN08) |
| Paginação | Controle | Não | - | Página 1 | Exibida acima e abaixo da lista (RN06) |
| Mensagem Vazio | Texto informativo | – | “Nenhum resultado encontrado para o termo pesquisado.” | – | Acompanhada de “Tente outros termos ou ajuste os filtros.” e, quando houver, da sugestão de termo (RN14) |
Filtros por categoria
| Categoria | Filtros avançados | Origem do conjunto |
|---|---|---|
| Todos os tipos | Assunto, Período | — |
| Serviço | Público (Cidadão, Órgãos Fiscalizados, Advogado, Licitantes, Servidor), Assunto, Período | Catálogo de Serviços (RF-009) |
| Publicação Institucional | Tipo, Tipo específico, Ano de publicação, Assunto, Período | Hub de Publicações Institucionais (RF-030) |
| Notícia | Autor, Tipo (Clipping, Notícia, Vídeo, Rádio), Assunto, Período | Hub de Notícias (RF-013) |
| Transparência | Categoria (grupo temático), Período | Portal da Transparência (RF-016) |
| Licitação | Modalidade, Ano, Situação, Período | Hub de Licitações e Contratos (RF-031) |
| Hub | Assunto, Período | — |
| Contato | Período | — |
| Item de subportal | Subportal (Governança, Observatório do Cidadão, Primeira Infância), Assunto, Período | Hubs dos subportais (RF-017, RF-018, RF-020) |
| Membro do Tribunal | Período | — |
| Página | Assunto, Período | — |
“Tipo específico” só é exibido quando o Tipo selecionado possui subdivisões, e é repovoado a cada troca de Tipo.
Hub e Página não possuem filtro próprio: a classificação “Tipo de conteúdo” da página foi descartada e o rótulo passa a designar apenas o seletor de categoria. Contato e Membro do Tribunal não recebem o filtro de Assunto, por não possuírem esse atributo.
Estados da interface
| Estado | Tela | Comportamento esperado |
|---|---|---|
| Aguardando | Campo do cabeçalho | Campo vazio ou preenchido, aguardando acionamento |
| Em busca | Campo do cabeçalho | Girador no lugar da lupa, ação de envio bloqueada, aria-busy no campo e mensagem anunciada (RN15) |
| Carregando | Página de resultados | Área de resultados substituída pelo girador e pela mensagem “Buscando resultados. Aguarde…” (RN15) |
| Sucesso | Página de resultados | Lista ordenada, com contador, ordenação, itens por página e paginação |
| Sucesso com correção | Página de resultados | Resultados da busca corrigida, com os avisos “Exibindo resultados para {corrigido}” e “Em vez disso, pesquisar por {digitado}” (RN14) |
| Vazio | Página de resultados | “Nenhum resultado encontrado para o termo pesquisado.”, quando não há resultado nem para o termo digitado nem para a correção (RN14) |
| Vazio por filtro | Página de resultados | Mesma mensagem, acrescida da ação “Limpar Filtros” |
| Erro | Página de resultados | “Não foi possível concluir a busca. Tente novamente.” e ação “Tentar novamente” |
Fluxos
Fluxo 01 - Executar Busca Global (Fluxo Principal)
| Passo | Ação | Regra | Tela |
|---|---|---|---|
| 01 | O usuário insere um termo no campo de Busca Global. | RN02, RN18 | Tela 01 |
| RN03 | Tela 01 | ||
| 03 | O usuário aciona o ícone de lupa ou a tecla Enter. | Tela 01 | |
| 03.1 | Caso o campo esteja vazio, o sistema não executa a busca e mantém o foco no campo. | RN18 | Tela 01 |
| 04 | O sistema sinaliza a busca em curso: substitui a lupa pelo girador, bloqueia a ação de envio e anuncia “Buscando resultados. Aguarde…”. | RN15 | Tela 01 |
| 05 | O sistema processa a consulta de forma unificada e apresenta os resultados ordenados por relevância ponderada pelo tipo de conteúdo. | RN01, RN04, RN11, RN12, RN13 | Tela 02 |
| 05.1 | Caso não existam resultados, o sistema executa o Fluxo 04. | Tela 02 | |
| 06 | O usuário seleciona uma categoria em “Tipo de conteúdo”. | RN05 | Tela 02 |
| 07 | O sistema exibe os filtros avançados daquela categoria e oculta os das demais. | RN09 | Tela 02 |
| 08 | O usuário aciona “Pesquisar”. | Tela 02 | |
| 09 | O sistema refina os resultados mantendo o termo pesquisado. | RN05, RN06 | Tela 02 |
Fluxo 02 - Refinar Busca por Categoria e Filtros
| Passo | Ação | Regra | Tela |
|---|---|---|---|
| 01 | O usuário seleciona uma categoria e preenche os filtros exibidos. | RN09 | Tela 02 |
| 02 | O usuário aciona “Pesquisar”. | Tela 02 | |
| 03 | O sistema substitui a área de resultados pelo estado de carregamento. | RN15 | Tela 02 |
| 04 | O sistema filtra os resultados conforme a categoria e os filtros selecionados, mantendo o termo. | RN05 | Tela 02 |
| 04.1 | Caso não existam resultados, o sistema exibe a mensagem de ausência e a ação “Limpar Filtros”. | Tela 02 | |
| 05 | O usuário aciona “Limpar Filtros” e o sistema refaz a busca apenas com o termo. | Tela 02 |
Fluxo 03 - Ordenar Resultados
| Passo | Ação | Regra | Tela |
|---|---|---|---|
| 01 | O usuário seleciona a opção desejada em “Ordenar por”. | RN04, RN17 | Tela 02 |
| 02 | Com “Relevância”, o sistema ordena pela pontuação textual somada ao peso do tipo, resolvendo empates pela data mais recente. | RN04, RN12 | Tela 02 |
| 03 | Com “Mais recentes”, o sistema ordena pela data de publicação decrescente e não aplica o peso do tipo. | RN17 | Tela 02 |
Fluxo 04 - Busca sem Resultado
| Passo | Ação | Regra | Tela |
|---|---|---|---|
| 01 | O sistema não localiza resultados para o termo e os filtros informados. | Tela 02 | |
| 02 | O sistema procura no vocabulário de busca um termo próximo ao digitado. | RN14, RN14.1 | Tela 02 |
| 02.1 | Havendo termo próximo, o sistema executa a busca corrigida e apresenta “Exibindo resultados para {termo corrigido}” e “Em vez disso, pesquisar por {termo digitado}”, este como link. | RN14 | Tela 02 |
| 03 | Não havendo termo próximo, ou não havendo resultado também para o termo corrigido, o sistema apresenta a mensagem “Nenhum resultado encontrado para o termo pesquisado.” | RN14 | Tela 02 |
| 04 | Havendo filtro aplicado, o sistema apresenta a ação “Limpar Filtros”. | Tela 02 | |
| 05 | O sistema mantém o termo no campo de busca, disponível para nova tentativa. | Tela 02 |
Fluxo 05 - Falha na Consulta (Exceção)
| Passo | Ação | Regra | Tela |
|---|---|---|---|
| 01 | A consulta não é concluída por indisponibilidade. | Tela 02 | |
| 02 | O sistema apresenta a mensagem “Não foi possível concluir a busca. Tente novamente.” | Tela 02 | |
| 03 | O sistema apresenta a ação “Tentar novamente”, que repete a consulta com o mesmo termo e os mesmos filtros. | Tela 02 |
RN – Regras de Negócio
| ID | Descrição |
|---|---|
| RN01 | Busca Unificada – O sistema executa a pesquisa, em operação única, sobre os conteúdos publicados dos tipos: serviço, publicação institucional, notícia, item do Portal da Transparência (RF-016), licitação (RF-031), página (incluídas as páginas-âncora de seção), contato institucional (RF-024), item de subportal — Governança (RF-020), Observatório do Cidadão (RF-017) e Primeira Infância (RF-018) — e membro do Tribunal (RF-019). Conteúdo com situação diferente de “Publicado” nunca é retornado; contato com situação inativa também não (RN21). |
| RN02 | Aceitação de Critérios Variáveis – O sistema permite pesquisa por termo livre: palavra, expressão, nome ou número. A correspondência é parcial, sem distinção entre maiúsculas e minúsculas e sem distinção de acentuação. |
| RN04 | Ordenação por Relevância – Com “Relevância” selecionado, os resultados são ordenados pela soma da pontuação textual com o peso do tipo de conteúdo (RN12). A pontuação textual considera: título idêntico ao termo (600), título contendo o termo (400), assunto correspondente (250), palavra-chave correspondente (200), resumo (120), conteúdo (100) e campo pesquisável do tipo (80), acrescidas das pontuações por palavra isolada do termo. Empates são resolvidos pela data de publicação mais recente. |
| RN05 | Filtro por Categoria – A seleção de categoria restringe os resultados àquele tipo de conteúdo, mantendo o termo originalmente pesquisado e os filtros transversais compatíveis. |
| RN06 | Paginação de Resultados – Os resultados são paginados em 10, 20 ou 50 registros por página, à escolha do usuário, com padrão de 10. A paginação é exibida acima e abaixo da listagem. |
| RN07 | Indexação Temática – O assunto e as palavras-chave preenchidos na gestão de conteúdo participam da correspondência e da pontuação, de modo que o conteúdo seja retornado mesmo quando o termo não consta do título. |
| RN08 | Fragmento de Texto (Snippet) – Cada resultado exibe título e resumo com todas as ocorrências do termo destacadas. O resumo vem do campo próprio de cada tipo — resumo da notícia, resumo da publicação, descrição do serviço, descrição breve do item de transparência, objeto da licitação — e, na ausência dele, das primeiras 28 palavras do conteúdo. |
| RN09 | Exibição Condicional de Filtros – Os filtros avançados exibidos correspondem à categoria selecionada em “Tipo de conteúdo”, conforme a tabela “Filtros por categoria” da Tela 02. Filtro de categoria não selecionada não é submetido nem aplicado. |
| RN10 | Assuntos (Tema Global) – O filtro transversal “Assunto” é alimentado pela lista de assuntos do tema global, mantida pelo RF-030 como fonte única e compartilhada pelos módulos editoriais. A busca não mantém lista própria: reflete a lista vigente. Composição atual, com 35 opções: Acessibilidade, Administração, Agropecuária, Assistência Social, Ciência e Tecnologia, Comunicação Institucional, Contratações Públicas, Contratos e Despesas, Controle Externo, Cultura, Desenvolvimento Regional, Economia, Educação, Energia, Esporte e Lazer, Finanças Públicas, Gestão Ambiental, Gestão de Pessoas, Gestão Estadual, Gestão Patrimonial, Governança, Habitação, Jurisprudência, Licitações, Obras, Participação Cidadã, Planejamento e Orçamento, Previdência Social, Primeira Infância, Saneamento, Saúde, Segurança Pública, Sustentabilidade, Transparência e Transporte. Agropecuária, Controle Externo, Esporte e Lazer, Governança, Habitação, Primeira Infância e Transparência foram acrescentados em 2026-09-18, na classificação das publicações migradas do Liferay (RF-033, decisão M5). |
| RN11 | Critérios de Busca – A correspondência é feita sobre título, resumo, conteúdo e os campos pesquisáveis declarados em RN13. Quando o termo tem mais de uma palavra, todas precisam ocorrer no mesmo registro, não necessariamente no mesmo campo. Os resultados seguem o padrão de exibição e navegação da sua área de origem, incluindo a indicação visual de link externo, sem abertura automática de nova aba. |
| RN12 | Peso por Tipo de Conteúdo – À pontuação textual de RN04 soma-se o peso do tipo: Serviço 300 Publicação Institucional 240 Notícia 180 Item de seção (Transparência e Licitação) 120 Hub 60 Contato 30 Item de subportal 30 Membro do Tribunal 30 Página 0 O peso ordena entre iguais e não anula a aderência textual: notícia cujo termo está no título (400 + 180 = 580) precede serviço cujo termo está apenas no conteúdo (100 + 300 = 400). |
| RN13 | Campos Pesquisáveis por Tipo – Além de título, resumo e conteúdo, a busca considera apenas os campos declarados a seguir; nenhum outro metadado é varrido, em particular identificadores, referências a arquivos, ícones, controles internos e chaves de definição de campo. Serviço: descrição resumida, sobre o serviço, chamada, público-alvo, requisitos de acesso. Publicação institucional: resumo, descrição completa, palavras-chave, autoria, número da edição, assunto. Notícia: resumo, corpo, chapéu, autor, palavras-chave, assunto. Item de transparência: descrição breve, corpo. Licitação: número, número do processo, objeto, solicitante, participante. Contato: nome, nome de exibição, responsável, ramais e endereços de e-mail. Item de subportal: descrição breve, conteúdo e autoria. Membro do Tribunal: cargo, título e biografia. Página: nenhum campo adicional. |
| RN14 | Correção do Termo – A consulta é executada sempre com o termo digitado pelo usuário. Somente quando ela devolve zero resultados o sistema procura no vocabulário de busca um termo próximo ao digitado; havendo um, executa a busca corrigida e apresenta, acima dos resultados, “Exibindo resultados para {termo corrigido}” e “Em vez disso, pesquisar por {termo digitado}”, este como link que refaz a busca sem correção. Não havendo termo próximo, apresenta a mensagem de ausência de resultado. Busca com resultados nunca é corrigida. |
| RN14.1 | Vocabulário de Busca – O vocabulário usado por RN14 é formado pelos títulos dos conteúdos publicados, pelos assuntos padronizados (RN10) e pelas palavras-chave preenchidas na gestão de conteúdo. Não inclui os demais metadados — nome de ícone, referência a arquivo, identificador e afins não são candidatos a correção. É reconstruído por rotina agendada, não a cada gravação de conteúdo. |
| RN15 | Sinalização de Execução – Toda busca em curso é sinalizada em até 200 ms do acionamento. No cabeçalho, o ícone de lupa é substituído pelo girador e a ação de envio é bloqueada até a resposta; na página de resultados, a área de resultados é substituída pelo girador com a mensagem “Buscando resultados. Aguarde…”. Em ambos os casos o estado é anunciado por região aria-live=“polite”. O bloqueio da ação impede o disparo em duplicidade. |
| RN16 | Tempo de Resposta – 95% das buscas respondem em até 3 segundos e nenhuma ultrapassa 8 segundos, medidos no servidor, sobre termos distintos e sem cache prévio. Para sustentar a meta: uma única consulta de resultados por requisição; conjunto de resultados mantido em cache por 15 minutos, identificado por termo, filtros, ordenação e página; cache invalidado na publicação ou alteração de conteúdo dos tipos de RN01. |
| RN17 | Período e Ordenação – O período informado filtra pela data de publicação e não altera a ordenação escolhida. Com “Mais recentes”, os resultados são ordenados pela data de publicação decrescente e o peso de tipo de RN12 não se aplica. |
| RN18 | Validação do Termo – O termo é limitado a 100 caracteres, descartado o excedente. Acionamento com campo vazio não executa busca. Termo composto apenas de marcação ou de caracteres removidos na sanitização é tratado como busca sem resultado, nunca como listagem sem filtro. |
| RN19 | Categoria Hub – São classificadas como Hub as páginas-âncora de seção: Transparência, Imprensa, Observatório do Cidadão, Pacto Nacional pela Primeira Infância, Governança, Planejamento e Gestão, Licitações e Contratos, O Tribunal e Serviços. A relação é mantida no código do tema, em ponto único, e não depende de marcação na gestão de conteúdo; página fora da relação é classificada como Página. Seção nova exige alteração da relação e nova publicação do tema. Jurisprudência e Atos Normativos não integra a lista: é serviço à parte, com motor de busca próprio (RN20). |
| RN20 | Jurisprudência e Atos Normativos – A consulta de jurisprudência e atos normativos é serviço à parte, com acervo e motor de busca próprios (Elasticsearch). A busca global não faz requisição a esse serviço e não retorna acórdãos, resoluções nem demais atos. O serviço é alcançável pela busca como resultado da categoria Serviço, a partir do seu título, da sua descrição e das suas palavras-chave (RN13), levando o usuário à consulta especializada. |
| RN21 | Destino do Resultado sem Endereço Próprio – Contato e item de Governança não possuem página própria no portal. O resultado de contato leva à página de Contatos, com o contato localizado; somente contatos ativos são retornados. O resultado de item de Governança leva ao endereço de destino do item quando ele for link, e à sua página dentro do hub da Governança quando for conteúdo próprio. Itens do Observatório do Cidadão, itens da Primeira Infância e membros do Tribunal possuem endereço próprio e são apontados diretamente. |
Restrições, dependências e impactos
Restrições.
- A correspondência por texto com curinga à esquerda não utiliza índice de coluna; a meta de RN16 é sustentada pela redução do volume varrido (RN13), pela consulta única por requisição e pelo cache
- Termo limitado a 100 caracteres
- A qualidade do resultado depende da gestão de conteúdo: conteúdo sem assunto, sem palavras-chave e sem resumo é encontrado apenas pelo título e pelo corpo, e pontua menos (RN07)
- O acervo de jurisprudência e atos normativos não é alcançável pela busca global (RN20): quem procura um acórdão pelo número continua tendo de entrar na consulta especializada
Dependências.
| Dependência | Situação |
|---|---|
| Taxonomia de assunto do tema global, mantida pelo RF-030 (RN10) | Em uso com 28 opções; a ampliação para as 35 vigentes é entrega do RF-030 e precisa estar publicada antes desta |
| Marcação de página-âncora de seção (RN19) | A criar — não existe hoje |
| Ano de publicação da publicação institucional (RF-030) | Em uso no hub; a expor no filtro da busca |
| Modalidade, ano e situação da licitação (RF-031) | Em uso no hub; a expor no filtro da busca |
| Perfis do catálogo de serviços (RF-009) | Em uso; a busca precisa oferecer os 5 |
| Sincronização dos contatos com o e-TCE (RF-024) | Em uso; a busca consome a base já sincronizada e não aciona a integração |
| Resolução do endereço de destino dos itens de Governança (RF-020) | Em uso; reaproveitada por RN21 |
Impactos.
- RF-009 — o campo “Tipo de serviço”, criado apenas para a busca, é removido do formulário do serviço, com descarte dos valores preenchidos
- Páginas institucionais — o campo “Tipo de conteúdo”, igualmente criado apenas para a busca, é removido do formulário da página, com o mesmo efeito; o campo de assunto da página permanece
- RF-030 — dono da lista de assuntos do tema global (RN10); esta demanda consome a lista e não a altera
- RF-012 — nenhuma integração: a relação com a consulta de jurisprudência é de encaminhamento, não de consulta (RN20)
- RF-013, RF-016, RF-030, RF-031 — nenhuma alteração de tela; a busca passa a consumir os mesmos campos que os hubs já usam para filtrar
- Desempenho do Portal — os filtros de consulta hoje aplicados a qualquer consulta executada durante a renderização da página de busca passam a incidir apenas sobre a consulta de resultados
- Gestão de conteúdo — com o peso por tipo, a notícia deixa de dominar a primeira página; a mudança precisa ser comunicada à área de comunicação antes da publicação
Critérios de Aceite
Elaborados conforme o Guia de Critérios de Aceite. A relação completa, de CA01 a CA51, está no PRD.md desta pasta, § 15. Reproduzidos aqui os critérios das regras introduzidas nesta versão:
| ID | Critério | Regra |
|---|---|---|
| CA01 | DADO que existem um serviço e uma notícia cujos títulos contêm o termo pesquisado, QUANDO o usuário pesquisar esse termo com a ordenação “Relevância”, ENTÃO o serviço é apresentado antes da notícia. | RN12 |
| CA02 | DADO que existe uma notícia com o termo no título e um serviço com o termo apenas no conteúdo, QUANDO o usuário pesquisar esse termo com a ordenação “Relevância”, ENTÃO a notícia é apresentada antes do serviço. | RN12 |
| CA03 | DADO que o usuário pesquisa “Prestação de Contas” e existem serviços com esse termo no título, QUANDO os resultados forem apresentados com 10 itens por página, ENTÃO todos esses serviços constam da primeira página. | RN12 |
| CA05 | DADO que o usuário está na página de resultados, QUANDO selecionar “Mais recentes” em “Ordenar por”, ENTÃO os resultados são reapresentados em ordem decrescente de data de publicação E o tipo de conteúdo não altera a posição. | RN17 |
| CA07 | DADO que o usuário acessa a página de resultados, QUANDO abrir a lista “Tipo de conteúdo”, ENTÃO as opções são exatamente: Todos os tipos, Serviço, Publicação Institucional, Notícia, Transparência, Licitação, Hub e Página. | RN09 |
| CA08 | DADO que o usuário selecionou a categoria “Serviço”, QUANDO os filtros avançados forem apresentados, ENTÃO são exibidos Público, Assunto e Período E não é exibido nenhum filtro de tipo de serviço. | RN09 |
| CA09 | DADO que o usuário selecionou a categoria “Serviço”, QUANDO abrir a lista “Público”, ENTÃO as opções são Cidadão, Órgãos Fiscalizados, Advogado, Licitantes e Servidor. | RN09 |
| CA15 | DADO que o usuário informou um período e manteve a ordenação “Relevância”, QUANDO acionar “Pesquisar”, ENTÃO os resultados são restritos ao período informado E permanecem ordenados por relevância. | RN17 |
| CA17 | DADO que existe uma licitação cujo número de processo é o termo pesquisado, QUANDO o usuário pesquisar esse número, ENTÃO a licitação consta dos resultados. | RN13 |
| CA18 | DADO que existe um conteúdo cujo único campo correspondente ao termo é um identificador interno, um nome de ícone ou uma referência a arquivo, QUANDO o usuário pesquisar esse termo, ENTÃO esse conteúdo não consta dos resultados. | RN13 |
| CA19 | DADO que o usuário está em qualquer página do Portal, QUANDO acionar a busca pelo campo do cabeçalho com um termo preenchido, ENTÃO o ícone de lupa é substituído por indicador de carregamento em até 200 ms E a ação de envio fica bloqueada até a resposta. | RN15 |
| CA20 | DADO que a busca do cabeçalho está em curso, QUANDO o leitor de tela estiver ativo, ENTÃO é anunciada a mensagem “Buscando resultados. Aguarde…”. | RN15 |
| CA22 | DADO que a busca do cabeçalho está em curso, QUANDO o usuário acionar novamente a ação de envio, ENTÃO nenhuma segunda busca é disparada. | RN15 |
| CA23 | DADO um conjunto de 20 termos distintos, sem consulta prévia em cache, QUANDO cada termo for pesquisado e o tempo de resposta do servidor for medido, ENTÃO ao menos 19 respondem em até 3 segundos E nenhum ultrapassa 8 segundos. | RN16 |
| CA25 | DADO que um conteúdo foi publicado ou alterado, QUANDO o termo correspondente for pesquisado em seguida, ENTÃO o resultado reflete a alteração. | RN16 |
| CA28 | DADO que o termo informado é composto apenas de marcação, QUANDO a busca for executada, ENTÃO o sistema exibe a mensagem “Nenhum resultado encontrado para o termo pesquisado.” E não apresenta listagem de conteúdo. | RN18 |
| CA30 | DADO que a busca com o termo digitado não devolveu resultados e existe termo próximo no vocabulário de busca, QUANDO a página de resultados for apresentada, ENTÃO o sistema exibe os resultados da busca corrigida E apresenta “Exibindo resultados para {termo corrigido}” e “Em vez disso, pesquisar por {termo digitado}”, este como link. | RN14 |
| CA31 | DADO que o termo digitado é próximo de outro existente no acervo e a busca devolve resultados, QUANDO os resultados forem apresentados, ENTÃO são os resultados do termo digitado E o sistema não apresenta resultados de termo corrigido. | RN14 |
| CA49 | DADO que a busca foi corrigida automaticamente, QUANDO o usuário acionar “Em vez disso, pesquisar por {termo digitado}”, ENTÃO o sistema refaz a busca com o termo digitado, sem correção. | RN14 |
| CA50 | DADO que a busca não devolveu resultados e não existe termo próximo no vocabulário de busca, QUANDO a página de resultados for apresentada, ENTÃO o sistema exibe “Nenhum resultado encontrado para o termo pesquisado.” E não apresenta termo corrigido. | RN14 |
| CA51 | DADO que o formulário de um conteúdo é gravado, QUANDO o vocabulário de busca for consultado em seguida, ENTÃO sua reconstrução não é disparada pela gravação. | RN14.1 |
| CA42 | DADO que o usuário selecionou a categoria “Página” ou “Hub”, QUANDO os filtros avançados forem apresentados, ENTÃO são exibidos apenas Assunto e Período E não é exibido filtro de tipo de conteúdo da página. | RN09 |
| CA43 | DADO que existe um ato normativo ou acórdão cujo texto corresponde ao termo pesquisado, QUANDO o usuário pesquisar esse termo na busca global, ENTÃO o ato não consta dos resultados E o serviço “Jurisprudência e Atos Normativos” consta quando o termo corresponder ao seu título, descrição ou palavras-chave. | RN20 |
| CA44 | DADO que existe um contato ativo cujo nome, ramal ou e-mail corresponde ao termo pesquisado, QUANDO o usuário pesquisar esse termo, ENTÃO o contato consta dos resultados com a etiqueta “Contato”. | RN01, RN13 |
| CA45 | DADO um resultado do tipo Contato, QUANDO o usuário acionar o card, ENTÃO é levado à página de Contatos com o contato localizado. | RN21 |
| CA46 | DADO um contato com situação inativa, QUANDO o termo correspondente for pesquisado, ENTÃO o contato não consta dos resultados. | RN21 |
| CA47 | DADO um resultado do tipo Item de subportal cujo item é um link para destino externo, QUANDO o usuário acionar o card, ENTÃO é levado ao endereço de destino do item. | RN21 |
| CA48 | DADO que existem um serviço e um contato correspondentes ao mesmo termo, ambos com o termo no título, QUANDO o usuário pesquisar esse termo com a ordenação “Relevância”, ENTÃO o serviço é apresentado antes do contato. | RN12 |
Dúvidas pendentes
| # | Dúvida | Responsável por responder | Situação |
|---|---|---|---|
| 01 | Número da demanda no Redmine para esta evolução | P.O. | Respondida — tarefa #44015 |
| 02 | Valores dos pesos de RN12: a distância entre eles determina quando a aderência textual vence o tipo | P.O. e equipe técnica | Em aberto — depende da implementação |
| 03 | Cobertura de contatos, itens de subportal e membros do Tribunal | P.O. | Respondida — incluídos nesta versão, com peso 30 (RN01, RN12, RN21) |
| 04 | Registro dos termos buscados | P.O. | Respondida — não será feito nesta versão |
| 05 | Descarte dos valores já preenchidos nos campos “Tipo de serviço” e “Tipo de conteúdo” da página | P.O. | Respondida — nada depende deles; descarte autorizado |
| 06 | Página-âncora de seção: marcação na gestão de conteúdo ou lista mantida no código do tema | Equipe técnica | Respondida — lista mantida no código do tema (RN19); sem campo a preencher |
| 07 | Reconferência da meta de RN16 em produção, cujo volume de conteúdo é maior que o do ambiente medido | Equipe técnica | Em aberto — depende da implementação |
| 08 | Índice denormalizado de busca com índice de texto completo, como alternativa de fundo ao motor dedicado — exige ADR | Desenvolvedor responsável | Encaminhada para avaliação; o parecer é registrado no PRD antes da construção, porque o documento é consumido por agente de IA na evolução da implementação |
| 09 | Ampliação da taxonomia de assunto para as 35 opções de RN10 | Responsável pelo RF-030 | Respondida — atividade #43997, a ser executada antes desta demanda |
| 10 | Encaminhamento para a consulta de jurisprudência quando a busca não encontra o ato (RN20) | P.O. | Respondida — não será tratado nesta demanda |
| 11 | Correção automática do termo digitado (RN14) | P.O. | Respondida — o recurso permanece, com a apresentação de hoje, disparado apenas quando a busca com o termo digitado devolve zero resultados; vocabulário conforme RN14.1 |
Histórico de versões
| Versão | Data | O que mudou | Motivo | Demanda |
|---|---|---|---|---|
| 1.0 | 2026-04-20 | Versão inicial: telas 01 e 02, regras RN01 a RN11 e três fluxos | Especificação original da busca global | #39403 |
| 1.1 | 2026-07-13 | RN03 (sugestão preditiva) revogada; elemento e passo de fluxo correspondentes marcados como removidos | Remoção da sugestão preditiva | #39403 |
| 2.0 | 2026-09-19 | Projeção regenerada a partir do PRD.md 2.0. Acrescidas as seções Problema/escopo, Comportamento atual e esperado, Restrições, Critérios de aceite, Dúvidas pendentes e este histórico. Acrescidas RN12 a RN21, e RN14.1 (peso por tipo, campos pesquisáveis, correção só no resultado vazio, vocabulário de busca, sinalização de execução, tempo de resposta, período e ordenação, validação do termo, categoria Hub, jurisprudência como serviço à parte, destino do resultado sem endereço próprio). Alteradas RN01, RN04, RN05, RN06, RN09, RN10 e RN11. Contatos, itens de subportal e membros do Tribunal passam a ser retornados, com peso 30. Descartados os filtros “Tipo de serviço” e “Tipo de conteúdo” da página. RN10 passa a referenciar a lista de assuntos do tema global mantida pelo RF-030, hoje com 35 opções. Fluxos renumerados de 01 a 05, com a inclusão do fluxo de ordenação e do fluxo de falha na consulta | Evolução da busca: prioridade por tipo de conteúdo, filtros alinhados aos hubs e resposta perceptível | #39403 e demanda da evolução a abrir |
Elaborado com: research-v2.md e documentar-funcionalidade-v2.md
Revisado por: @pramorim - Paulo Ricardo Amorim Silva