इलास्टिक्स खोज फ़ील्ड निकालें

Ilastiksa Khoja Filda Nikalem



'इलास्टिकसर्च इंडेक्स के साथ काम करते समय, आप एक उदाहरण का सामना कर सकते हैं जहां आपको मौजूदा दस्तावेज़ से फ़ील्ड को हटाने की आवश्यकता होती है। दुर्भाग्य से, Elasticsearch एक मूल अनुरोध प्रदान नहीं करता है जिसका उपयोग हम उक्त कार्रवाई करने के लिए कर सकते हैं।

हालाँकि, हम दस्तावेज़ अपडेट एपीआई का उपयोग कर सकते हैं और एक स्क्रिप्ट पास कर सकते हैं जो हमें इसके नाम के आधार पर एक फ़ील्ड को हटाने की अनुमति देती है। ”







टिप्पणी : इस प्रक्रिया के लिए आपको इलास्टिक्स खोज स्क्रिप्टिंग और दस्तावेज़ अद्यतन एपीआई का बुनियादी ज्ञान होना आवश्यक है। अधिक जानने के लिए बेझिझक डॉक्स या इस विषय पर हमारे ट्यूटोरियल देखें।



चलो गोता लगाएँ।



जाँच करें कि क्या दस्तावेज़ मौजूद है

किसी विशिष्ट दस्तावेज़ से किसी फ़ील्ड को हटाने से पहले, यह सुनिश्चित करना अच्छा है कि लक्ष्य दस्तावेज़ अनुक्रमणिका के भीतर मौजूद है।





लक्ष्य दस्तावेज़ प्राप्त करने के लिए हम खोज API का उपयोग कर सकते हैं।

उदाहरण के लिए, मान लें कि हमारे पास kibana_sample_logs_data अनुक्रमणिका है। हम एक विशिष्ट आईपी वाले दस्तावेज़ के लिए अनुक्रमणिका खोज सकते हैं।



टिप्पणी : उपरोक्त उदाहरण का उपयोग केवल उदाहरण के लिए किया गया है। अनुक्रमणिका में कोई विशिष्ट दस्तावेज़ उपलब्ध है या नहीं, यह सत्यापित करने के लिए आप विभिन्न विधियों का उपयोग कर सकते हैं।

कर्ल -XGET 'http://localhost:9200/kibana_sample_data_logs/_search' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'आकार': 0,
'क्वेरी': {'मैच': {
'आईपी': '171.24.97.162'
}}
}'

परिणामी आउटपुट:

{
'लिया': 3,
'timed_out': झूठा,
'_शर्ड्स': {
'कुल': 1,
'सफल': 1,
'छोड़ दिया': 0,
'विफल': 0
},
'हिट': {
'कुल': {
'मूल्य': 17,
'संबंध': 'ईक'
},
'max_score': शून्य,
'हिट': []
}

}

इसके बाद, एक साधारण स्क्रिप्ट दस्तावेज़ से लक्ष्य फ़ील्ड को हटा सकती है। अपने किबाना कंसोल में लॉग इन करके शुरू करें और कमांड चलाएँ:

कर्ल -XPOST 'http://localhost:9200/kibana_sample_data_logs/_update/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'स्क्रिप्ट': 'ctx._source.remove('\''ip'\'')'
}'

उपरोक्त अनुरोध दस्तावेज़ को अद्यतन करने और निर्दिष्ट आईडी के साथ 'आईपी' फ़ील्ड को हटाने के लिए दर्द रहित संदर्भ स्क्रिप्ट का उपयोग करता है।

आउटपुट:

{
'_index': 'kibana_sample_data_logs',
'_id': '5pA49IIBkTjaZ6TtsiB5',
'_संस्करण 2,
'परिणाम': 'अपडेट किया गया',
'_शर्ड्स': {
'कुल': 2,
'सफल': 2,
'विफल': 0
},
'_seq_no': 14074,
'_प्राथमिक_टर्म': 1
}

एक बार दस्तावेज़ अपडेट हो जाने के बाद, आप क्वेरी चलाकर सत्यापित कर सकते हैं:

कर्ल -XGET 'http://localhost:9200/kibana_sample_data_logs/_doc/5pA49IIBkTjaZ6TtsiB5' -H 'kbn-xsrf: रिपोर्टिंग'

उपरोक्त अनुरोध को निर्दिष्ट आईडी के साथ दस्तावेज़ में संग्रहीत डेटा वापस करना चाहिए।

हम सत्यापित कर सकते हैं कि IP फ़ील्ड अब दस्तावेज़ में नहीं है।

निष्कर्ष

इस लेख में, आपने सीखा कि किसी मौजूदा दस्तावेज़ से किसी फ़ील्ड को निकालने के लिए Elasticsearch स्क्रिप्टिंग क्षमताओं का उपयोग कैसे करें।

पढ़ने के लिए धन्यवाद!!