KamoCRM

Laden Sie content_json nicht, um den öffentlichen Baumindex zu erstellen, und stoppen Sie es zweimal

PerformanceKBService
Verschifft
23. September 2026 um 02:17 UTC
Autor
Kamo
Ausschuss
155e7de

buildPublicTreeIndex baut einen kleinen strukturellen Index (Eltern/Kind, Schneckenpfad, Vorfahren) aus jeder öffentliche Artikel in der Org, aber es war das Laden voller KbArticle Zeilen, um es zu tun. eingeschlossen, gemessen bei 6,6 KB pro Zeile gegen ein paar hundert Bytes für den Rest einer Reihe kombiniert. Der Baumindex und alles, was stromabwärts davon (der Auszug auf jeder Liste/Baumknoten, Pfad und ancestor Auflösung) liest niemals content_json; nur eine Einzelteilchen-Lesung serialisiert es, und das Eine Reihe stammt bereits aus einer eigenen, separaten Suche. Der Baum/die Liste/einzelne einer 300-Artikel-Organisation Antwort zog 2 MB Körpertext aus der Datenbank, um ihn sofort für alle zu verwerfen. eine Reihe. **************** wählt alles aus, was der Index tatsächlich mit Namen liest (a JPQL Projektionsabfrage, keine Repository-Methode - KbArticleRepository lebt in Kamo-Shared-Bibliothek, aus dem Umfang hier) und baut reale KbArticle Instanzen aus den Reihen über den eigenen Builder des Unternehmens, nie beharrte oder an die Sitzung gebunden. Jeder bestehende Leser von PublicTreeIndex arbeitet weiter unverändert; getContentJson() auf einem davon ist einfach null, was nur darauf ankommt, zu programmieren serialisiert es, und nichts außerhalb einer einzelnen Artikel lesen tut. Getrennt, /baum-für-Eltern-Schleuder genannt beide ************ (die ihre eigenen geladen Kopie jedes öffentlichen Artikels, um die gleiche Kinderkarte bauenPublicTreeIndex baut bereits baut) und buildPublicTreeIndex - eine Anfrage, die vollständige org-weite Artikelliste, die zweimal geladen wird. Ersteres jetzt nimmt den Index, den der Anrufer bereits gebaut hat, als Parameter, anstatt ihn neu zu erstellen. Auch übersetzenRefs (Brotkrümel und "siehe auch" Links, nicht-Englisch) gelöst jede ref Übersetzung indem Sie die Schiedsrichter guid wieder bis zu einem KbArticle und dann Abfrage seine Übersetzung - zwei Abfragen pro ref. Ein Ref trägt bereits die uid des Artikels, den er jetzt benennt (KbArticleRefDTO.uid, intern nur @JsonIgnore, nie in der öffentlichen Reaktion), also **************** löst stattdessen jeden Ref in einer Liste in einer Stapeln IN-Abfrage auf. Tests: KbArticleServiceTreeIndexTest behauptet, dass die Projektion jedes Feld eine vollständige Enteigenlast trägt hätte (ContJson ausgenommen, null behauptet) und dass die Baum/Pistal/Ahnenberechnung gebaut haben von ihm ist die gleiche Drei-Ebenen-Form, die eine Voll-Entity-Ladung produziert hätte - die Befestigungs-basierte old-vs-new check. ************ Übungen /by-slug Ende to end in Französisch und beweist, dass die aufgestockte Lookup die guid Rundreise ersetzt ************ ist nie für einen ref genannt).

Alle Änderungen

Wie, was Sie sehen Versand?

Alles kommt in Ihrem Arbeitsbereich für sich. Starten Sie mit dem kostenlosen Plan und lesen Sie diese Seite in einem Monat wieder.

Free Forever startenPreisgestaltung anzeigen