2013-03-20 8 views
13

मुझे अपने सोलर कॉन्फ़िगरेशन में त्रुटि नीचे आ रही है।सोलर 4.2 - _version_field क्या है?

Caused by: org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:806) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:619) 
     at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:1021) 
     at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1051) 
     ... 10 more 
Caused by: org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist) 
     at org.apache.solr.update.UpdateLog.init(UpdateLog.java:245) 
     at org.apache.solr.update.UpdateHandler.initLog(UpdateHandler.java:84) 
     at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:134) 
     at org.apache.solr.update.DirectUpdateHandler2.<init>(DirectUpdateHandler2.java:95) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
     at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:526) 
     at org.apache.solr.core.SolrCore.createUpdateHandler(SolrCore.java:597) 
     at org.apache.solr.core.SolrCore.<init>(SolrCore.java:790) 
     ... 13 more 
Caused by: org.apache.solr.common.SolrException: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist) 
     at org.apache.solr.update.VersionInfo.getAndCheckVersionField(VersionInfo.java:57) 
     at org.apache.solr.update.VersionInfo.<init>(VersionInfo.java:83) 
     at org.apache.solr.update.UpdateLog.init(UpdateLog.java:242) 
     ... 23 more 

मैं जानना चाहता हूँ कि _version_field है क्या चाहता था, और क्यों इसकी चाहिए आवश्यक है?

क्या कोई मुझे इस पर सुझाव दे सकता है ??

उत्तर

14

_version_ फ़ील्ड एक आंतरिक क्षेत्र है जिसका उपयोग आंशिक अद्यतन प्रक्रिया, अद्यतन लॉग प्रक्रिया और SolrCloud द्वारा किया जाता है। यह केवल उन प्रक्रियाओं के लिए आंतरिक रूप से उपयोग किया जाता है, और बस आपके schema.xml में _version_ फ़ील्ड प्रदान करना पर्याप्त होना चाहिए।

आप वास्तव में क्या _version_ साथ चल रहा है के रूप में जानकारी पाना चाहते हैं, तो आप this website जाएँ "आशावादी संगामिति" अद्यतन प्रक्रिया है, जो _version_ का उपयोग करता है के बारे में जानने के लिए कर सकते हैं।

+0

क्या इस क्षेत्र को स्कीमा में जोड़ना इंडेक्स आकार पर कोई प्रभाव डालता है? – Krunal

+0

@ क्रुनल: आपको क्या लगता है कि प्रत्येक दस्तावेज़ में अतिरिक्त विशेषता जोड़ने पर क्या होगा? – ashish

+0

@ आशीष, हमने इसका परीक्षण इंडेक्स आकार और प्रदर्शन पर प्रभाव को समझने के लिए किया। हमें इंडेक्स आकार और न ही प्रदर्शन में कोई महत्वपूर्ण बदलाव नहीं मिला। इसलिए हमने भविष्य में आंशिक अद्यतन का समर्थन करने के लिए क्षेत्र को हमारी स्कीमा में छोड़ने का फैसला किया। – Krunal

27

Schema.xml

<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/> 
+0

मुझे लगता है कि आपका मतलब है 'typr = "slong" '। सोलर 4.4 पर काम करने के लिए 'लंबा' नहीं दिखता है। –

+0

वास्तव में संस्करण फ़ील्ड को पहले परिभाषित करने की कोई आवश्यकता नहीं थी, यह अनिवार्य है जब दस्तावेज़ को आंशिक रूप से – ashish

+0

@ सल्वाटोरियोवीन 4.10 के साथ दस्तावेज़ अपडेट करने के लिए हल किया गया था, 'स्लॉन्ग' काम नहीं करता था, लेकिन 'लंबा' किया गया था। – mrmuggles

1

में अंदर "मैदान" टैग नीचे दिए गए क्षेत्र परिभाषा जोड़ने आप इसे हटा, तो आप भी लेन-देन solrconfig.xml से प्रवेश करने को निकालना होगा। link देखें।