- Navios
- 23 de setembro de 2026 às 02:17 UTC
- Autor
- Kamo
- Enviar
- 155e7de
buildPublicTreeIndex constrói um pequeno índice estrutural (pai/filho, caminho da lesma, antepassados) de cada artigo público na org, mas estava carregando linhas completas do KbArt para fazê-lo — content json incluído, medido em ~6.6 KB por linha contra algumas centenas de bytes para o resto de uma linha combinada. O índice de árvore e tudo a jusante dele (o excerto em cada nó de lista/árvore, caminho e resolução ancestral) nunca lê content json; apenas um único artigo de leitura serializa-lo, e que uma linha já vem de seu próprio olhar separado. A árvore/lista/single da organização de 300 artigos resposta foi puxar ~2 MB de texto do corpo para fora do banco de dados para descartá-lo imediatamente para todos, mas Uma fila. ************* selecciona tudo o que o índice realmente lê pelo nome (a Consulta de projecção JPQL, não um método de repositório — o KbArticleRepository vive na biblioteca- partilhada com o kamo, fora do escopo aqui) e constrói instâncias reais do KbArticle das linhas através do próprio construtor da entidade, nunca persistiu ou se apegou à sessão. Cada leitor existente de PublicTreeIndex continua trabalhando inalterado; getContentJson() em um destes é simplesmente nulo, o que só importa para codificar que Serializa-o, e nada fora de uma única leitura de artigo faz. Separadamente, a árvore-por-pai-slug chamou ambos (que carregou o seu próprio cópia de cada artigo público para reconstruir o mesmo mapa infantil buildPublicTreeIndex já constrói) e buildPublicTreeIndex — uma solicitação, a lista completa de artigos de org carregada duas vezes. O primeiro agora toma o índice o chamador já construído como um parâmetro em vez de reconstruí-lo. Além disso, traduzirRefs (breadcrumbs e "ver também" links, não-inglês) resolveu a tradução de cada ref por re-olhar o guid do ref até um KbArticle e, em seguida, consultar sua tradução — duas consultas Per ref. Um ref já carrega o uid do artigo que nomeia agora (KbArticleRefDTO.uid, internal Apenas — @JsonIgnore, nunca na resposta pública), por isso ********************** resolve cada ref em uma lista em uma consulta em lote. Testes: KbArticleServiceTreeIndexTest afirma que a projeção carrega cada campo uma carga de entidade completa teria (contentJson excepted, assevered null) e que a computação árvore/caminho/ancestor construído a partir dele é a mesma forma de três níveis que uma carga de força total teria produzido — o Um cheque antigo. **************************** exercícios /by-slug fim a fim em francês e Prova que a procura em lote substitui a viagem de ida e volta. Nunca pedi um árbitro).
