2013-06-26 5 views
5

मैं एक स्क्रिप्ट का उपयोग करना चाहते हैं निम्न कार्य करें:प्रकार रूपांतरण

{ 
    "query": { 
    "match_all": {} 
}, 
    "facets": { 
    "user_facet": { 
     "terms": { 
     "field": "user_id", 
     "script": "term + \"_\" + _source.code" 
     } 
    } 
    } 
} 

यह इस प्रश्न में दिए गए जवाब के समान है: elastic search double facet

समस्या सिर्फ मेरे पास है है मेरे user_id और कोड फ़ील्ड तारों की बजाय लंबे प्रकार के होते हैं। क्या उन्हें तार बनाने का कोई तरीका है ताकि उन्हें स्क्रिप्ट के साथ जोड़ा जा सके?

विशेष त्रुटि मैं हो रही है यह है:

nested: ClassCastException[java.lang.String cannot be cast to java.lang.Number]; 
+0

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

+0

एक विचार करने का विचार किया ... हो सकता है कि क्षेत्र के लिए 'डॉक्टर [' user_id '] 'का उपयोग कर रहे हों? – Phil

+0

आप जावा को एक मेवेल स्क्रिप्ट के भीतर भी उपयोग कर सकते हैं। मैं उन्हें जावा का उपयोग करके स्ट्रिंग्स में बदल दूंगा;) – javanna

उत्तर

3

यह हास्यास्पद ध्वनि सकता है, लेकिन मैं एक ही मुद्दा है, और जिस तरह से मैं इसे (एक बहुत इसी तरह की समस्याओं के लिए) तय किया था ड्रॉप "के लिए गया था क्षेत्र "विनिर्देश इतना है कि यह इस तरह दिखता है:

{ 
    "query": { 
    "match_all": {} 
}, 
    "facets": { 
    "user_facet": { 
     "terms": { 
     "script": "term + \"_\" + _source.code" 
     } 
    } 
    } 
} 

मुझे लगता है कि इसके बारे में उत्पादन कन्वर्ट करने के लिए कोशिश कर रहा था" वर्ग डाली अपवाद के कारण वापस क्षेत्र के प्रकार में स्क्रिप्ट "निष्पादन,।

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