2012-02-20 19 views
5

के मामले में दिनांक फ़ील्ड के लिए कॉम्पोनेंट मेरे पास सोलर 3.5 द्वारा अनुक्रमित कई दस्तावेज़ हैं, जिनमें अन्य लोगों के बीच दिनांक फ़ील्ड (solr.DateField) शामिल हैं। अब मैं Solr घटक के लिए अनुरोध जो कोई परिणाम नहीं लौटना चाहिए कार्य करें: आँकड़े हिस्सा बिनासॉलर स्टैट्स की शून्य त्रुटि से डिवीजन

http://example.com/solr/select?fq=sis_field_int:1000& 
stats=true&stats.field=ds_field_date 

और प्राप्त होने वाले त्रुटि

HTTP Status 500 -/by zero java.lang.ArithmeticException:/by zero at 
org.apache.solr.handler.component.DateStatsValues.addTypeSpecificStats 
(StatsValuesFactory.java:384) at ... 

अगर मैं अनुरोध भेजना होगा या बजाय किसी गैर-दिनांक आँकड़े क्षेत्र निर्दिष्ट करें, मैं उम्मीद हो कोई परिणाम के साथ प्रतिक्रिया। यह सोलर की एक बग की तरह दिखता है जो उदाहरण देता है। इस मामले में औसत मूल्य की गणना करने के लिए। दुर्भाग्य से मुझे इस समस्या पर कोई संदर्भ नहीं मिला है। क्या समस्या को बाईपास या हल करने का कोई तरीका है?

उत्तर

6

आप सही हैं, समस्या औसत मान की गणना है:

res.add("mean", new Date(sum/count)); 

sum और count दोनों long हैं। जब count शून्य है, तो निश्चित रूप से आपको ArithmeticException मिलता है। आप वास्तव में उस तारीख फ़ील्ड पर आंकड़े बना रहे हैं, जिसका आपके सूचकांक में कोई मूल्य नहीं है। सबसे आसान कामकाज उस क्षेत्र पर आंकड़े बना रहा है जिसमें कम से कम एक मान है, इसलिए count वैरिएबल शून्य से बड़ा होगा, विभाजन काम करेगा, और आँकड़े मुझे लगता है कि और भी सार्थक होगा।

आपको एक संख्यात्मक क्षेत्र का उपयोग कर एक ही स्थिति के साथ एक ही त्रुटि नहीं मिलती है, क्योंकि उस स्थिति में योग चर double है, इस प्रकार विभाजन विभाजन नहीं बढ़ाता है और परिणाम NaN है। वास्तव में, फ़ील्ड प्रकार के आधार पर विभिन्न StatsValues कार्यान्वयन हैं।

अद्यतन
मैं SOLR-3160 jira मुद्दा खोला और एक पैच जो सिर्फ किया गया है प्रदान की है। सोलर की अगली रिलीज में फिक्स होगा!

+0

क्या कोई जांच नहीं है कि गिनती शून्य के बराबर है या नहीं? HTTP 500 उत्तर देने वाले अन्य को हल करने के अनुरोध में इस त्रुटि का एक और हैंडलर सेट करने का कोई तरीका है? – dev4

+0

@ dev4 कोई चेक नहीं है! मुझे लगता है कि करने के लिए सबसे अच्छी बात जिरा मुद्दा खोलना है। यदि आप चाहते हैं कि आप पैच भी प्रदान कर सकें, अन्यथा मुझे यकीन है कि कोई इसे देखेगा, मैं भी ऐसा कर सकता हूं। – javanna

+1

@ dev4 मेरे अपडेट किए गए जवाब को देखो! फिक्स पहले से ही किया जा चुका है, यह अगले सौर रिलीज के साथ उपलब्ध होगा! – javanna

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