2012-04-12 13 views
23

मुझे सोलर डाउनलोड के साथ आता है कि डिफ़ॉल्ट जेटी सर्वर का उपयोग कर मेरे उबंटू मशीन पर एक सोलर इंस्टेंस चल रहा है।सोलर क्वेरी - HTTP त्रुटि 404 अपरिभाषित फ़ील्ड टेक्स्ट

INFO: SolrDispatchFilter.init() done 
Apr 12, 2012 2:01:56 PM org.apache.solr.common.SolrException log 
SEVERE: org.apache.solr.common.SolrException: undefined field text 

जैसा कि मैंने हालांकि कहा, सर्वर करेंगे: जब भी मैं

जावा जार start.jar

सर्वर ठीक शुरू होता है लेकिन वहाँ हमेशा एक अपवाद फेंका है का उपयोग कर Solr शुरू अभी भी शुरू करें और मैं सोलर व्यवस्थापक इंटरफ़ेस देख सकता हूं। मैंने अपनी स्कीमा को निम्नानुसार परिभाषित किया है।

<fields> 
    <field name="id" type="string" indexed="true" stored="true" /> 
    <field name="phraseID" type="int" indexed="true" stored="true" /> 
    <field name="translation" type="string" indexed="true" stored="true" /> 
</fields> 
<uniqueKey>id</uniqueKey> 

मैं एक JSON अद्यतन करने में भी सक्षम था - मैंने स्वीकार किए गए डेटा का नमूना सरणी सबमिट की थी। इस बिंदु तक सबकुछ ठीक है।

जब मैं एक क्वेरी चलाने के लिए प्रयास:

http://localhost:8983/solr/select/?q=*:*&version=2.2&start=0&rows=10&indent=on 

यह सही ढंग से सभी डेटा है कि मैं अपने नमूना पहले में प्रस्तुत देता है।

हालांकि, इस समय मैं पाठ का उपयोग कर क्वेरी करने के लिए प्रयास करते हैं, मैं एक HTTP त्रुटि 404.

http://localhost:8983/solr/select/?q=fruit&version=2.2&start=0&rows=10&indent=on 

--- returns --- 

HTTP ERROR 400 

Problem accessing /solr/select/. Reason: 

    undefined field text 
Powered by Jetty:// 

उत्तर

38

डिफ़ॉल्ट Solr विन्यास प्राप्त चूक कि डिफ़ॉल्ट स्कीमा Solr टारबॉल में शामिल मेल खाते के साथ कुछ अनुरोध संचालकों परिभाषित किया गया है।

चेक अनुरोध संचालकों solrconfig में परिभाषित किया गया है और आपको पता चल सकता है कि <str name="qf"> और अन्य कॉन्फ़िगरेशन मान कुछ क्षेत्रों आप स्कीमा में निर्धारित नहीं है शामिल हैं।

इसके अलावा, आपके Schema.xml जाँच, कि डिफ़ॉल्ट खोज क्षेत्र इस तरह पाठ पर सेट नहीं है: <defaultSearchField>text</defaultSearchField>

+1

समस्या डिफ़ॉल्ट खोज फ़ील्ड थी - इसका सेट "टेक्स्ट" पर सेट है जिसे मैंने टेक्स्ट प्रकार से भ्रमित कर दिया था। मैंने "अनुवाद" (या जो भी आपका फ़ील्ड नाम है) का उपयोग करने के लिए डिफ़ॉल्ट खोज फ़ील्ड सेट किया है और यह पूरी तरह से काम करता है। –

+1

मेरे मामले में समस्या ' टेक्स्ट <12 str' 'str name =" qf "> सामग्री' 'solrconfig.xml' में" ("सामग्री" को 'डिफ़ॉल्ट खोज फ़ील्ड' के रूप में सेट किया गया है 'schema.xml') – daftu

+0

मैं कुछ दिनों के लिए इस उत्तर की खोज कर रहा हूं, बहुत बहुत धन्यवाद, वास्तव में मुझे इस भयानक उत्तर को वोट देना पड़ा, हालांकि मुझे आश्चर्य है कि दस्तावेज़ों में इसका उल्लेख कहां किया गया है। –

0

मैं एक ही समस्या के रूप में ऊपर या व्याख्या की है जो एक 404 उत्तर पर या तो प्रतीत होता है कभी कभी है

गंभीर: org.apache.solr.common.SolrException: घाट स्टैक ट्रेस में एक अपवाद के रूप अपरिभाषित क्षेत्र पाठ

at org.apache.solr.schema.IndexSchema.getDynamicFieldType(IndexSchema.java:1330) 
    at org.apache.solr.schema.IndexSchema.getFieldType(IndexSchema.java:1282) 
    at org.apache.solr.search.SolrQueryParser.getWildcardQuery(SolrQueryParser.java:234) 
    at org.apache.lucene.queryParser.QueryParser.Term(QueryParser.java:1414) 
मैं अपने Schema.xml में टाइप पाठ के लिए निम्नलिखित परिभाषा (इसमें कोई समस्या नहीं देखते हैं:

मैं defaultSearchField जो "सामग्री" (जो मेरे लिए ठीक लगता है)

संपादित करने के लिए सेट कर दिया जाता जाँच)

<fieldType name="text" class="solr.TextField" 
    positionIncrementGap="100"> 
    <analyzer> 
     <tokenizer class="solr.WhitespaceTokenizerFactory"/> 
     <filter class="solr.StopFilterFactory" 
      ignoreCase="true" words="stopwords.txt"/> 
     <filter class="solr.WordDelimiterFilterFactory" 
      generateWordParts="1" generateNumberParts="1" 
      catenateWords="1" catenateNumbers="1" catenateAll="0" 
      splitOnCaseChange="1"/> 
     <filter class="solr.LowerCaseFilterFactory"/> 
     <filter class="solr.EnglishPorterFilterFactory" 
      protected="protwords.txt"/> 
     <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> 
    </analyzer> 
</fieldType> 
+0

मेरी उपरोक्त पोस्ट को पूरा करने के लिए, मेरे पास मेरी स्कीमा में "टेक्स्ट" की फ़ील्ड ट्यूप परिभाषा है जो है: –

+1

पहला उत्तर देखें। आपको शायद अपने solrconfig.xml को संपादित करने की आवश्यकता है। –

46

मुझे एक ही समस्या थी। solrconfig.xml फ़ाइल में <defaultSearchField> कोई समस्या नहीं है, तो /select हैंडलर देखें।

कि भीतर आप इस

<str name="df">text</str> 

दोषी है ऐसा ही कुछ पाते हैं। df का मतलब डिफ़ॉल्ट फ़ील्ड है और यह डिफ़ॉल्ट रूप से, और स्वीकार्य रूप से, बेवकूफ है, text नामक फ़ील्ड पर सेट किया गया है, जिसमें कई लोग नहीं हो सकते हैं।

इसे हटाएं और इसे अपने डिफ़ॉल्ट खोज फ़ील्ड के साथ बदलें।

+1

आपका समाधान केवल यही है जो मेरे लिए काम करता है। धन्यवाद! –

+0

@NicYoung आपका स्वागत है – Arindam

+0

@ अरिंदम मेरी schema.xml में मैंने इस क्षेत्र को जोड़ा है <फ़ील्ड नाम = "all_fields" टाइप = "टेक्स्ट" अनुक्रमित = "सत्य" संग्रहीत = "झूठा" /> ताकि मैं सभी फ़ील्ड (होप इट कॉररेक्ट) खोज सकूं, मैंने आपकी टिप्पणी का पालन किया और all_fields के रूप में solrconfig.xml को बदल दिया। लेकिन मेरा परिणाम खाली दिखाता है क्या कारण होगा ????? कृपया मेरी मदद करें – sandy

0

टेक्स्ट फ़ील्ड किसी अन्य फ़ील्ड की प्रतियों से बना है, जैसा कि डिफ़ॉल्ट schema.xml में निर्दिष्ट है (जब कोई नया दस्तावेज़ डालने पर)।

तो, जब हमारे पास solrconfig.xml में df "text" है, और हम solr admin पेज जैसे फ़ील्ड को निर्दिष्ट किए बिना खोज बनाते हैं जैसे: वीडियो। इसे टेक्स्ट फ़ील्ड में देखा जाएगा (जो किसी अन्य फ़ील्ड की प्रतियों से बना है)।

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