- शिप
- 23 सितंबर 2026 को 2:17 am बजे UTC
- लेखक
- Kamo
- Commit
- 155e7de
निर्माणपब्लिकट्रिइन्डेक्स एक छोटी संरचनात्मक सूचकांक (माता-पिता / बच्चे, स्लग पथ, पूर्वजों) का निर्माण करता है। ऑर्ग में हर सार्वजनिक लेख, लेकिन यह पूर्ण KbArticle पंक्तियों को यह करने के लिए लोड हो रहा था - content json इसमें शेष पंक्ति के लिए कुछ सौ बाइटों के खिलाफ ~6.6 KB प्रति पंक्ति शामिल है। पेड़ सूचकांक और इसके सब कुछ डाउनस्ट्रीम (सभी सूची/त्रि नोड, पथ और पर अंश) पूर्वज संकल्प कभी content json पढ़ता है; केवल एक एकल लेख इसे धारावाहिक करता है और कहा कि एक पंक्ति पहले से ही अपने अलग लुकअप से आती है। एक 300-article संगठन का पेड़/सूची/एकल प्रतिक्रिया ने तुरंत इसे सभी के लिए त्याग देने के लिए डेटाबेस से बाहर बॉडी टेक्स्ट के ~2 MB को खींच लिया था लेकिन एक पंक्ति। ************* सब कुछ का चयन करता है सूचकांक वास्तव में नाम से पढ़ता है (a) जेपीक्यूएल प्रोजेक्शन क्वेरी, एक भंडार विधि नहीं - KbArticleRepository Kamo साझा पुस्तकालय में रहता है, यहां के दायरे से बाहर) और इकाई के अपने बिल्डर के माध्यम से पंक्तियों से वास्तविक KbArticle उदाहरण बनाता है, कभी भी सत्र तक जारी या संलग्न नहीं होता। PublicTreeIndex के प्रत्येक मौजूदा पाठक काम करता रहता है unchanged; getContentJson () इनमें से एक पर केवल null है, जो केवल कोड करने के लिए मायने रखता है। इसे क्रमबद्ध करता है, और एक एकल लेख पढ़ने के बाहर कुछ भी नहीं करता है। अलग-अलग, /ट्री-by-parent-slug दोनों ************* (जो अपने आप को लोड करता है) प्रत्येक सार्वजनिक लेख की प्रतिलिपि एक ही बच्चे के नक्शे का पुनर्निर्माण करने के लिए buildPublicTreeIndex पहले से ही बनाता है) और buildPublicTreeIndex — एक अनुरोध, पूर्ण org-wide लेख सूची दो बार लोड हुई। अब पहले इंडेक्स को पहले से ही इसे पुनर्निर्माण के बजाय एक पैरामीटर के रूप में बनाया गया है। इसके अलावा, अनुवादRefs (breadcrumbs और "देखें" लिंक, गैर-अंग्रेजी) ने प्रत्येक रेफरी के अनुवाद को हल किया फिर से देखने के द्वारा रेफरी की guid वापस एक KbArticle तक और फिर उसके अनुवाद को क्वेरी — दो प्रश्नों प्रति रेफरी एक रेफरी पहले से ही उस लेख के uid को रखती है जिसका नाम अब है (KbArticleRefDTO.uid, आंतरिक केवल - @JsonIgnore, सार्वजनिक जवाब में कभी नहीं), इसलिए ************* इसके बजाय एक बैच में एक सूची में प्रत्येक रेफरी को हल करता है। टेस्ट: KbArticleServiceTreeIndexTest ने दावा किया कि प्रक्षेपण हर क्षेत्र को एक पूर्ण इकाई भार रखता है। होगा (contentJson छोड़कर, जोर दिया null) और कि पेड़/पथ/ancestor computation निर्मित इससे एक ही तीन स्तर का आकार एक पूर्ण-प्रवेश भार का उत्पादन होता है - स्थिरता आधारित पुराने बनाम नए चेक। ************* अभ्यास /by-slug अंत फ्रेंच में समाप्त करने के लिए और यह साबित करता है कि बैच वाला लुकअप गिड राउंड-ट्रिप को प्रतिस्थापित करता है **************** कभी भी एक रेफरी नहीं कहा जाता है।.
