solr वाइल्डकार्ड सोलर 1.4 के साथ खोज और हाइलाइटिंग




highlighting wildcard (2)

मेरे पास एक बहुत अधिक वेनिला SOLR 1.4 को स्थापित करने के अलावा कुछ छोटे विन्यास और स्कीमा परिवर्तनों के अलावा।

<requestHandler name="standard" class="solr.SearchHandler" default="true">
    <!-- default values for query parameters -->
    <lst name="defaults">
        <str name="defType">dismax</str>
        <str name="echoParams">explicit</str>
        <str name="qf">
            text
        </str>
        <str name="spellcheck.dictionary">default</str>
        <str name="spellcheck.onlyMorePopular">false</str>
        <str name="spellcheck.extendedResults">false</str>
        <str name="spellcheck.count">1</str>
    </lst>
</requestHandler>

मुख्य फ़ील्ड प्रकार मैं इंडेक्सिंग के लिए उपयोग कर रहा हूं यह है:

<fieldType name="textNoHTML" class="solr.TextField" positionIncrementGap="100">
        <analyzer type="index">
            <charFilter class="solr.HTMLStripCharFilterFactory" />
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.StopFilterFactory"
                    ignoreCase="true"
                    words="stopwords.txt"
                    enablePositionIncrements="true"
            />
            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
        </analyzer>
        <analyzer type="query">
            <tokenizer class="solr.WhitespaceTokenizerFactory"/>
            <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
            <filter class="solr.StopFilterFactory"
                    ignoreCase="true"
                    words="stopwords.txt"
                    enablePositionIncrements="true"
            />
            <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="1"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.SnowballPorterFilterFactory" language="English" protected="protwords.txt"/>
        </analyzer>
    </fieldType>

अब, जब मैं एक खोज का प्रयोग करके करता हूं

"q=search+term&hl=on"

मुझे हाइलाइट मिलता है, और सटीक स्कोर अच्छा होता है

लेकिन, वाइल्डकार्ड के लिए, मैं मान रहा हूं कि आपको "q.alt" का उपयोग करने की आवश्यकता है? क्या यह सच है? यदि ऐसा है तो मेरी क्वेरी इस तरह दिखती है:

"q.alt=search*&hl=on"

जब मैं उपरोक्त क्वेरी का उपयोग करता हूं, तो हाइलाइटिंग काम नहीं करता है, और सभी स्कोर "1.0" हैं।

मैं क्या गलत कर रहा हूं? वास्तव में बहुत ही शांत एसओएलआर ऑप्टिमाइजेशन को छोड़कर मैं क्या चाहता हूं।

चियर्स!


या आप नवीनतम रात का निर्माण और एडिसैक्स (विस्तारित डिस्मैक्स क्यूपरर्स) का इस्तेमाल कर सकते हैं।

यह अनुगामी और प्रमुख वाइल्डकार्ड दोनों को संभालता है


मुझे पता है कि आप वाइल्डकार्ड का उपयोग डिवॉक हैंडलर के साथ नहीं कर सकते, http://wiki.apache.org/solr/DisMaxRequestHandler#q देखें।

वाइल्डकार्ड खोज को अनुकरण करने के लिए मैंने यहां कुछ निर्देशों का पालन करते हुए एजग्राम को उपयोग किया है: http://www.lucidimagination.com/blog/2009/09/08/auto-suggest-from-popular-queries-using-edgengrams/ दरअसल, मैंने वास्तव में केवल स्कीमा.एक्सएमएम के लिए एडिटेक्टफ़ेक्ट फ़ील्डप्रविष्टि को जोड़ा और उस फ़ील्ड के फ़ील्डप्रइप को बदल दिया जिसे मैं खोजना चाहता था।

उम्मीद है की यह मदद करेगा!