2010-10-19 12 views
6

मैं solr documentation के अनुसार वर्तनी जांचने की कोशिश कर रहा हूं। लेकिन जब मैं परीक्षण कर रहा हूं, तो मेरे पास कोई सुझाव नहीं है। कोड का मेरा टुकड़ा इस प्रकार है:अनुरोध संभाल solrconfig.xml स्पेलचेकर

<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> 

    <str name="queryAnalyzerFieldType">textSpell</str> 

    <lst name="spellchecker"> 
     <str name="classname">solr.IndexBasedSpellChecker</str> 
     <str name="name">default</str> 
     <str name="field">name</str> 
     <str name="spellcheckIndexDir">./spellchecker</str> 
    </lst> 
    <str name="queryAnalyzerFieldType">textSpell</str> 

    </searchComponent> 


<requestHandler name="/spellcheck" class="solr.SearchHandler"> 
    <lst name="defaults"> 
     <str name="echoParams">explicit</str> 
     <!-- Optional, must match spell checker's name as defined above, defaults to "default" --> 
     <str name="spellcheck.dictionary">default</str> 
     <!-- omp = Only More Popular --> 
     <str name="spellcheck.onlyMorePopular">false</str> 
     <!-- exr = Extended Results --> 
     <str name="spellcheck.extendedResults">false</str> 
     <!-- The number of suggestions to return --> 
     <str name="spellcheck.count">1</str> 
    </lst> 
    <arr name="last-components"> 
     <str>spellcheck</str> 
    </arr> 
    </requestHandler> 

क्वेरी मैं Solr पर भेज दें:
q =% 2 बी% 28text% 3A% 28gasal% 29% 29 & suggestField = contentOriginal & ontologySeed = gasal & spellcheck.build = true & spellcheck.q = gasal & वर्तनी जाँच = सच & spellcheck.collate = सच & hl = सच & hl.snippets = 5 & hl.fl = पाठ & hl.fl = पाठ & पंक्तियों = 12 & शुरू = 0 & क्यूटी =% 2Fsuggestprobabili stic

क्या कोई जानता है क्यों ?? अग्रिम धन्यवाद

+0

आपकी कॉन्फ़िगरेशन सही दिखती है। क्या आप जो क्वेरी सबमिट कर रहे हैं उसे पोस्ट कर सकते हैं, और अपेक्षित परिणाम (यानी आपके शब्दकोश में क्या है)? –

+0

मैं इनपुट बास्केटबॉल और मैं बास्केटबाल प्राप्त करना चाहता हूं, उदाहरण के लिए –

+0

कृपया संपूर्ण क्वेरी और सोलर पर पोस्ट किए जा रहे सभी पैरामीटर पोस्ट करें। क्या आपके पास आपके इंडेक्स में एक दस्तावेज़ है जिसमें टेक्स्टस्पेल फ़ील्ड में टोकन 'बास्केटबाल' है? –

उत्तर

17

सबसे पहले, घटक कॉन्फ़िगरेशन में queryAnalyzerFieldType दो बार दोहराएं।

यह (अगर यह आप क्या उपयोग है या dismax) एक /spellcheck हैंडलर का उपयोग करने के लिए, लेकिन इसके बजाय मानक क्वेरी हैंडलर के लिए वर्तनी जाँच घटक बाध्य करने के लिए नहीं की सिफारिश की है इस तरह:

<requestHandler name="standard" class="solr.SearchHandler" default="true"> 
<lst name="defaults"> 
    ... 
</lst> 
<arr name="last-components"> 
    <str>spellcheck</str> 
    ...   
</arr> 
</requestHandler> 

फिर आप यह कॉल कर सकते हैं इस तरह:
http://localhost:8983/solr/select?q=komputer&spellcheck=true

इसके अलावा to build the spellcheck dictionary मत भूलना इससे पहले कि आप का उपयोग करें:
http://localhost:8983/solr/select/?q=*:*&spellcheck=true&spellcheck.build=true

,

<searchComponent name="spellcheck" class="solr.SpellCheckComponent"> 
<str name="queryAnalyzerFieldType">textSpell</str> 
<lst name="spellchecker"> 
    <str name="classname">solr.IndexBasedSpellChecker</str> 
    <str name="name">default</str> 
    <str name="field">name</str> 
    <str name="spellcheckIndexDir">./spellchecker1</str> 
    <str name="buildOnCommit">true</str> 
</lst> 
</searchComponent> 

अंत में सुनिश्चित करें कि आपके name क्षेत्र वास्तव में टाइप textSpell की एक अनुक्रमित क्षेत्र है बनाने के लिए और इसे बनाने के लिए पर्याप्त सामग्री मौजूद है कि:

आप घटक में यह कॉन्फ़िगर करके निर्माण करने के लिए प्रत्येक के लिए प्रतिबद्ध में शब्दकोश मजबूर कर सकते हैं एक अच्छा शब्दकोश मेरे मामले में, मेरे पास spellchecker नामक एक फ़ील्ड है जो मेरी अनुक्रमणिका के कुछ फ़ील्ड (स्कीमा में copyField निर्देशों का उपयोग करके) से आबादी है।

+0

शब्दकोश के अनुसार, यह enaugh है? विषय या मुझे कुछ और करना चाहिए? –

+0

spellcheck.dictionary एक कॉन्फ़िगरेशन विकल्प नहीं है लेकिन रनटाइम पर कौन से शब्दकोश का उपयोग करना है यह इंगित करने के लिए एक अनुरोध पैरामीटर है। यह उपयोगी है अगर आपने एक से अधिक शब्दकोश परिभाषित किए हैं। –

+0

मैं सफलतापूर्वक teh शब्दकोश का निर्माण करता हूं लेकिन जब मैं यूआरएल चलाता हूं: http: // localhost: 8983/solr/select? Q = komputer & spellcheck = true मुझे कोई सुझाव नहीं मिल रहा है :( – Romi

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