2012-11-29 33 views
6

के साथ django haystack SearchField indexed=FalseSearchIndex में अतिरिक्त फ़ील्ड सेट करने का कोई कारण है?इंडेक्टेड फल्स

दस्तावेज़ीकरण का उल्लेख है कि अतिरिक्त फ़ील्ड को फ़िल्टरिंग या ऑर्डर करने के परिणामों के लिए परिभाषित किया जाना चाहिए। डिफ़ॉल्ट रूप से SearchIndex में indexed=True है, तो यदि मैं indexed=False सेट करता हूं तो क्या होता है?

क्या डेटा अभी भी इंडेक्स पर संग्रहीत किया जाएगा लेकिन अनुक्रमित नहीं किया जाएगा? अगर मैं stored=False सेट करता हूं तो क्या होगा?

यह कैसे काम करता है?

धन्यवाद

उत्तर

3

डिफ़ॉल्ट रूप से, Haystack में सभी क्षेत्रों दोनों इंडेक्स किए गए (इंजन द्वारा खोजा) और संग्रहीत (परिणामों में इंजन द्वारा बनाए रखा और प्रस्तुत)। संग्रहीत फ़ील्ड का उपयोग करके, आप सामान्य रूप से उपयोग किए गए डेटा को इस तरह से स्टोर कर सकते हैं कि अधिक जानकारी प्राप्त करने के लिए आपको खोज परिणाम संसाधित करते समय डेटाबेस को हिट करने की आवश्यकता नहीं है। यदि आप indexed=True और stored=True निर्दिष्ट करते हैं तो आपको यह लाभ मिलता है।

यदि आप केवल indexed=True निर्दिष्ट करते हैं, तो आप इंडेक्स में अतिरिक्त जानकारी उपलब्ध नहीं होने के लिए खोज परिणाम संसाधित करते समय डेटाबेस को मार देंगे।

indexed=False का उद्देश्य उस परिदृश्य को पूरा करना है जहां आप अनुक्रमणित प्रक्रिया के दौरान एक पूर्व-प्रस्तुत टेम्पलेट का पालन करने के लिए एक प्रस्तुत क्षेत्र चाहते हैं। एक अच्छा उदाहरण यहां चित्रित किया गया है - https://django-haystack.readthedocs.org/en/latest/searchindex_api.html#stored-indexed-fields