2013-08-13 17 views
10

मैं सिर्फ खेतों मैं एक खोज http://www.elasticsearch.org/guide/reference/api/search/fields/वहाँ

में चाहते शामिल करने के लिए की स्थापना फ़ील्ड का उपयोग करने जानते एक Elasticsearch क्वेरी में एक क्षेत्र को छोड़ने के लिए एक रास्ता है ... लेकिन अगर मैं विपरीत कर सकता है मैं सोच रहा था ... किसी भी तरह एक या दो फ़ील्ड निर्दिष्ट करें जिन्हें मैं क्वेरी परिणामों में शामिल नहीं करना चाहता (जैसे अटैचमेंट, उदाहरण के लिए)। यह सिर्फ उन सभी फ़ील्ड को टाइप करना है जो मुझे कम से कम एक या दो से कम करना चाहते हैं, जब मैं

+2

बस स्पष्ट होने के लिए, आपके द्वारा लिंक किए गए "फ़ील्ड्स" पैरामीटर को उन क्षेत्रों को प्रभावित नहीं किया जाता है, जो क्वेरी के विरुद्ध चलती हैं, केवल जो वापस आती है ... (मुझे लगता है कि आप इसे जानते हैं, अन्य लोगों के पढ़ने के लिए और अधिक।) – ramseykhalaf

+0

हाँ मुझे पता था कि, हालांकि स्पष्टीकरण के लिए धन्यवाद। – concept47

उत्तर

7

को बाहर निकालने के लिए फ़ील्ड निर्दिष्ट कर सकता हूं क्या आपने अपने प्रश्न में लिंक किए गए उसी पृष्ठ पर 'आंशिक' के लिए प्रलेखन देखा था? यह आपको वही करने की अनुमति देता है जो आप चाहते हैं, यद्यपि मैं केवल '_source' फ़ील्ड पर विश्वास करता हूं। http://www.elasticsearch.org/guide/reference/api/search/fields/

देखें जब _source से डेटा लोड हो रहा, partial क्षेत्रों क्या _source का हिस्सा include और exclude पैटर्न पर आधारित लोड किया जाएगा नियंत्रित करने के लिए वाइल्डकार्ड का उपयोग करने के लिए इस्तेमाल किया जा सकता।

दोनों include और exclude समर्थन एकाधिक पैटर्न:

{ 
    "query" : { 
     "match_all" : {} 
    }, 
    "partial_fields" : { 
     "partial1" : { 
      "include" : ["obj1.obj2.*", "obj1.obj4.*"], 
      "exclude" : "obj1.obj3.*" 
     } 
    } 
} 
+1

ठीक है आप कम से कम उस दस्तावेज़ीकरण को उद्धृत कर सकते हैं। भले ही ओपी कुछ स्पष्ट हो गया, यह एक उत्तर से अधिक टिप्पणी है। –

+0

हाँ मैंने देखा कि, कोशिश की लेकिन यह काम नहीं किया, इसलिए मैं शायद कुछ गलत कर रहा हूं, बस यह नहीं पता कि: – concept47

+1

क्या आप अपनी कोशिश की पोस्ट कर सकते हैं? (आश्चर्यचकित यह काम नहीं किया!) – ramseykhalaf

7

आप स्रोत छनन उपयोग कर सकते हैं (V में परीक्षण किया गया 1.6 और वी 1.7।।): https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html

{ 
    "_source": { 
     "include": [ "obj1.*", "obj2.*" ], 
     "exclude": [ "*.description" ] 
    }, 
    "query" : { 
     "term" : { "user" : "kimchy" } 
    } 
} 

तुम भी उपयोग कर सकते हैं यह अनुरोध प्राप्त करें:

curl "localhost:9200/myindex/mytype/66a8f299870b4cab?_source_exclude=file._content&pretty" 

पिछला उदाहरण संलग्नक फ़ील्ड में फ़ाइल सामग्री को बहिष्कृत करता है।

+0

क्या आप इस लाइन में वाइल्डकार्ड चयनकर्ता को समझा सकते हैं: '"बहिष्कृत करें": ["*। डिस्क्रिप्शन"] '? '*। डिस्क्रिप्शन 'जैसा ही है (रेगेक्स में पुनः लिखा गया है):'। * \। विवरण'? धन्यवाद! – crollywood

+0

हाय @ क्रॉलिवुड, उदाहरण ईएस आधिकारिक डॉक्टर से लिया गया है, इसमें सभी "विवरण" उप-क्षेत्रों को शामिल नहीं किया गया है, इसलिए मुझे लगता है कि आपका regexp सही होगा। – Roberto