KamoCRM

Public 트리 인덱스를 구축하기 위해 content json을 로드하지 말고 두 번 로드하십시오

PerformanceKBService
Shipped
2026년 9월 23일 오전 2:17 UTC
Author
Kamo
Commit
155e7de

buildPublicTreeIndex는 작은 구조 인덱스 (parent/child, slug path, 조상)를 구축합니다. org의 모든 공공 기사, 그러나 그것은 전체 KbArticle 행을로드했다 - content json 포함, ~6.6 KB의 행에 대한 몇 백 바이트에 대한 행에 대한 연속. 나무 색인 및 모든 다운스트림 (모든 목록 / 트리 노드, 경로 및 발췌) 조상 해결책)는 content json를 결코 읽지 않습니다; 단 하나 입자만 그것을 serializes, 및 그 한 줄은 이미 자신의 분리 된 모습에서 온다. 300자 조직의 나무/list/single 응답은 데이터베이스에서 몸 텍스트의 ~2 MB를 즉시 삭제하여 모든하지만 1개의 줄. **************** 모든 인덱스를 실제로 읽습니다. JPQL 투상 쿼리, 저장소 방법이 아닙니다 - KbArticleRepository kamo-shared-library의 삶, 의 범위에서 여기에) and builds real KbArticle examples from the rows via a entity's own builder, 세션에 절대 노출 또는 첨부. PublicTreeIndex의 모든 기존 독자는 일을 지킵니다 unchanged; getContentJson() 이 중 하나는 단순히 null, 이는 코드에만 해당 그것을 일관되게 하고, 단 하나 입자 읽는 아무 것도 없습니다. 따로따로, /tree-by-parent-slug는 둘 다에게 불립니다 *********** (자신을 불러 같은 어린이지도 buildPublicTreeIndex 이미 빌드를 재건하는 모든 공공 기사의 복사) 그리고 buildPublicTreeIndex — 하나의 요청, 전체 org-wide 문서 목록 두 번로드. 이전 현재 index 는 이미 rebuilding 대신 매개 변수로 구축. 또한, translationRefs (breadcrumbs and "see also" link, non-English) 각 ref의 번역을 해결 ref's guid back up to the KbArticle and then querying its translation — two queries 냉각 당. ref는 이미 기사의 uid를 지금 이름 (KbArticleRefDTO.uid, 내부 단지 - @JsonIgnore, 공개 응답에서 절대), 그래서 **************** 1개의 일괄 처리에 있는 명부에 있는 각 ref를 대신에 해결하십시오. 테스트: KbArticleServiceTreeIndexTest asserts는 모든 필드를 전체 엔티티티티 로드를 수행 (contentJson을 제외한, asserted null)과 나무/path/ancestor computation 내장 이 세 가지 수준의 모양은 완전성 부하가 생산 될 것입니다 - 고정 장치 기반 오래된 vs-new 체크. ****** ********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** 운동 /by-slug는 프랑스어로 끝나고 배치 된 조회는 guid 둥근 지구를 대체합니다 ***********는 입니다 불균형으로 불립니다.

All changes

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing