2012-10-11 9 views
16

Schema.xml स्निपेट:Solr - क्वेरी सभी क्षेत्रों पर सबसे अच्छा अभ्यास

<field name="id" type="string" indexed="true" stored="true" required="true" /> 
    <field name="notes" type="text_general" indexed="true" stored="true"/> 
    <field name="missionFocus" type="text_general" indexed="true" stored="true"/> 
    <field name="name" type="text_general" indexed="true" stored="true"/> 
    <field name="first_name" type="text_general" indexed="true" stored="true"/> 
    <field name="last_name" type="text_general" indexed="true" stored="true"/> 
    <field name="about_me" type="text_general" indexed="true" stored="true"/> 
    <field name="message" type="text_general" indexed="true" stored="true"/> 
    <field name="title" type="text_general" indexed="true" stored="true"/> 
    <field name="table_type" type="string" indexed="true" stored="true"/> 

    <field name="text" type="text_general" indexed="true" stored="false" 
      multiValued="true"/> 

अब मैं सभी क्षेत्रों में खोज करना चाहते हैं जैसे के लिए ("id" और "TABLE_TYPE" को छोड़कर) "नमस्ते"। मैं यह कैसे कर सकता हूं? क्या मुझे वास्तव में निम्नलिखित लिखना है?

/solr/select/?q=notes:hello missionFocus:hello name:hello first_name:hello .. 

मैंने DisMaxRequestHandler के बारे में कुछ सुना लेकिन मुझे इस हैंडलर से कैसे पूछना है? क्या मुझे इसके लिए solrconfig.xml में कुछ बदलने की ज़रूरत है?

उत्तर

21

सबसे अच्छा समाधान है कि क्षेत्र में, एक क्षेत्र है कि इस

<field 
    name="collector" 
    type="text_general" 
    indexed="true" 
    stored="false" 
    multiValued="true" 
/> 

केवल एक चीज है कि आप अब करना है जैसे सभी क्षेत्रों में से डेटा एकत्र करता है का निर्माण सभी क्षेत्रों की सामग्री की प्रतिलिपि करने के लिए है:

<fields> 
.... 
</fields> 
01:
<copyField source="notes"  dest="collector"/> 
<copyField source="missionFocus" dest="collector"/> 
<copyField source="name"   dest="collector"/> 
.... 

बारे में पता copyField ब्लॉक नीचे इस परिभाषित किया जाना है कि हो सकता है

अब आप केवल collector पर फ़ील्ड पर खोज सकते हैं और आपको अपने किसी भी फ़ील्ड में कोई टेक्स्ट मिल जाएगा।

+0

मुझे लगता है कि मैंने पहले ही "टेक्स्ट" नामक "कलेक्टर" फ़ील्ड को परिभाषित किया है? :) ठीक है, मैंने बस इसे schema.xml उदाहरण से कॉपी किया है। – user1731299

+0

यह सही है: "टेक्स्ट" सोलर उदाहरण प्रोजेक्ट में समकक्ष फ़ील्ड है ;-) – heinob

+0

यदि मैं स्कोरिंग के आधार पर स्कोरिंग को ट्विक करना चाहता हूं तो क्या करना है? – faridasabry

संबंधित मुद्दे