2011-11-11 15 views
6

मैं अपनी साइट पर खोज के लिए django-haystack का उपयोग कर रहा हूं। मेरी समस्या यह है कि, यदि खोज शब्द किसी विशिष्ट फ़ील्ड में पाया गया तो मैं शीर्ष पर खोज परिणाम प्राप्त करना चाहता हूं। मान लें कि मैं ब्लॉग-प्रविष्टियों की खोज करता हूं, फिर मैं उन परिणामों को शीर्ष पर दिखाना चाहता हूं जहां खोज शब्द शीर्षक फ़ील्ड में पाया गया था।Django haystack: खोजकर्ता को किसी विशेष फ़ील्ड में खोजता है तो

मैंने फील्ड-बूस्टिंग के बारे में हैस्टैक दस्तावेज पढ़ा लेकिन मुझे समझ में नहीं आता कि इसे कैसे काम करना चाहिए।

उत्तर

4

आप या तो कर सकते हैं:

अपनी खोज अनुक्रमणिका फ़ाइल को संशोधित करें उदा।

class BlogEntryIndex(SearchIndex): 
    text = CharField(document=True, use_template=True) 
    title = CharField(model_attr='title', boost=1.125) 

नोट: के रूप में टिप्पणी में कहा नीचे केवल अवधि शीर्षक नहीं क्षेत्र, में वृद्धि होगी ऊपर का उपयोग करें।

या आप अपने हैरस्टैक यूआरएल फ़ाइल में अपने SearchQuerySet उदाहरण को बढ़ावा दे सकते हैं।

sqs = SearchQuerySet().boost('title', 1.125) 

urlpatterns = patterns('haystack.views', 
    url(r'^$', SearchView(searchqueryset=sqs), name='haystack_search'), 
) 
+0

हैलो फिर से, त्वरित प्रतिक्रिया के लिए धन्यवाद! मैं दस्तावेज से इन दो प्रकारों को जानता हूं और पहला संस्करण दिलचस्प दिखता है लेकिन क्या मुझे इसे काम करने के लिए कुछ और करना है? मैंने पहले ही यह कोशिश की है लेकिन ऐसा कुछ भी नहीं बदल रहा है ... दूसरा संस्करण मुझे बहुत मदद नहीं करता है क्योंकि यह केवल एक खोजकर्ता को एक क्षेत्र में नहीं बढ़ाता है, कम से कम यह है कि मैं इसे कैसे समझता हूं। – scherlock

+0

आप किस खोज बैकएंड का उपयोग कर रहे हैं? – JamesO

+0

मैंने जोश और सोलर – scherlock