लोचदार खोज मल्टी-गेट

Locadara Khoja Malti Geta



यह लेख इस बात पर चर्चा करेगा कि उनकी आईडी के आधार पर कई JSON दस्तावेज़ प्राप्त करने के लिए Elasticsearch मल्टी-गेट API का उपयोग कैसे करें। इसके अलावा, Elasticsearch आपको केवल दस्तावेज़ आईडी का उपयोग करके इंडेक्स से दस्तावेज़ पुनर्प्राप्त करने के लिए एकल प्राप्त क्वेरी का उपयोग करने की अनुमति देता है।

आइए ढूंढते हैं।







सिंटैक्स का अनुरोध करें

इलास्टिक्स खोज मल्टी-गेट एपीआई का सिंटैक्स निम्नलिखित है:



प्राप्त करें /_mget
प्राप्त करें /<सूचकांक>/_mget

मल्टी-गेट एपीआई कई इंडेक्स का समर्थन करता है जो आपको दस्तावेजों को लाने की अनुमति देता है, भले ही वे एक ही इंडेक्स में न हों।



अनुरोध निम्न पथ पैरामीटर का समर्थन करता है:





  1. <सूचकांक> - अनुक्रमणिका का नाम जिससे उनकी आईडी द्वारा निर्दिष्ट दस्तावेजों को पुनः प्राप्त करना है।

आप दिखाए गए अनुसार अन्य क्वेरी पैरामीटर भी निर्दिष्ट कर सकते हैं:

  1. पसंद - पसंदीदा नोड या शार्ड को परिभाषित करता है।
  2. रियल टाइम - अगर सही पर सेट किया जाता है, तो ऑपरेशन रीयल-टाइम में किया जाता है।
  3. ताज़ा करना - निर्दिष्ट दस्तावेज़ प्राप्त करने से पहले ऑपरेशन को लक्ष्य शार्क को ताज़ा करने के लिए मजबूर करता है।
  4. मार्ग - एक मान जिसका उपयोग संचालन को एक विशिष्ट शार्ड पर रूट करने के लिए किया जाता है।
  5. Store_fields - दस्तावेज़ के बजाय किसी अनुक्रमणिका में संग्रहीत दस्तावेज़ फ़ील्ड को पुनर्प्राप्त करता है।
  6. _स्रोत - एक बूलियन मान जो परिभाषित करता है कि अनुरोध को _source फ़ील्ड वापस करना चाहिए या नहीं।

क्वेरी के लिए शरीर की आवश्यकता होती है, जिसमें निम्नलिखित मान शामिल होते हैं:



  1. डॉक्स - उन दस्तावेजों को निर्दिष्ट करता है जिन्हें आप लाना चाहते हैं। इसके अलावा, यह खंड निम्नलिखित विशेषताओं का समर्थन करता है:
    • _पहचान - टारगेट डॉक्यूमेंट की यूनिक आईडी।
    • _अनुक्रमणिका - वह सूचकांक जिसमें लक्ष्य दस्तावेज़ होता है।
    • मार्ग - दस्तावेज़ के प्राथमिक हिस्से की कुंजी।
    • _स्रोत - अगर सही है, तो इसमें सभी स्रोत फ़ील्ड शामिल हैं; अन्यथा, यह उन्हें बहिष्कृत करता है।
    • _संग्रहीत_फ़ील्ड - store_fields जिन्हें आप शामिल करना चाहते हैं।
  2. आईडी - दस्तावेजों की आईडी जिन्हें आप लाना चाहते हैं।

उदाहरण 1: समान अनुक्रमणिका से अनेक दस्तावेज़ प्राप्त करें

निम्न उदाहरण दिखाता है कि नेटफ्लिक्स इंडेक्स से विशिष्ट आईडी वाले दस्तावेज़ों को पुनः प्राप्त करने के लिए इलास्टिक्स खोज मल्टी-गेट एपीआई का उपयोग कैसे करें:

कर्ल -XGET 'http://localhost:9200/netflix/_mget' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'दस्तावेज़': [
{
'_id': 'T3wnVoMBck2AEzXPytlJ'
},
{
'_id': 'W3wnVoMBck2AEzXPytlJ'
}
]
}'

दिए गए अनुरोध को नेटफ्लिक्स इंडेक्स से निर्दिष्ट आईडी वाले दस्तावेज़ प्राप्त करने चाहिए। परिणामी आउटपुट जैसा दिखाया गया है:

{
'दस्तावेज़': [
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'T3wnVoMBck2AEzXPytlJ',
'_संस्करण 1,
'_seq_no': 0,
'_प्राथमिक_अवधि': 1,
'पाया': सच है,
'_स्रोत': {
'अवधि': '90 मिनट',
'listed_in': 'वृत्तचित्र',
'देश': 'संयुक्त राज्य अमेरिका',
'date_added': 'सितंबर 25, 2021',
'show_id': 's1',
'निर्देशक': 'कर्स्टन जॉनसन',
'रिलीज़_इयर': 2020,
'रेटिंग': 'पीजी-13',
'विवरण': 'जैसे ही उनके पिता अपने जीवन के अंत के करीब आते हैं, फिल्म निर्माता कर्स्टन जॉनसन उनकी मृत्यु को आविष्कारशील और हास्यपूर्ण तरीकों से करते हैं ताकि उन दोनों को अपरिहार्य का सामना करने में मदद मिल सके।',
'टाइप': 'मूवी',
'शीर्षक': 'डिक जॉनसन मर चुका है'
}
},
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'W3wnVoMBck2AEzXPytlJ',
'_संस्करण 1,
'_seq_no': 12,
'_प्राथमिक_अवधि': 1,
'पाया': सच है,
'_स्रोत': {
'देश': 'जर्मनी, चेक गणराज्य',
'शो_आईडी': 'एस13',
'निर्देशक': 'क्रिश्चियन श्वाचो',
'रिलीज़_वर्ष': 2021,
'रेटिंग': 'टीवी-एमए',
'विवरण': 'आतंकवादी बमबारी में उसके परिवार के अधिकांश लोगों की हत्या के बाद, एक युवती को अनजाने में उसी समूह में शामिल होने का लालच दिया जाता है जिसने उन्हें मार डाला।',
'टाइप': 'मूवी',
'शीर्षक': 'आई एम कार्ल',
'अवधि': '127 मिनट',
'listed_in': 'नाटक, अंतर्राष्ट्रीय फिल्में',
'कास्ट': 'लूना वेडलर, जेनिस निवोनर, मिलन पेशेल, एडिन हसनोविच, अन्ना फियालोवा, मार्लन बोस, विक्टर बोकार्ड, फ्लेर गेफियर, अजीज डायब, मेलानी फौचे, एलिसैवेटा मैक्सिमोवा',
'date_added': '23 सितंबर, 2021'
}
}
]

}

हम दस्तावेज़ आईडी को एक साधारण सरणी में डालकर अनुरोध को सरल भी बना सकते हैं जैसा कि निम्नलिखित में दिखाया गया है:

कर्ल -XGET 'http://localhost:9200/netflix/_mget' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'आईडी': ['T3wnVoMBck2AEzXPytlJ', 'W3wnVoMBck2AEzXPytlJ']
}'

पिछले अनुरोध को इसी तरह की कार्रवाई करनी चाहिए।

उदाहरण 2: एकाधिक संकेतकों से दस्तावेज़ प्राप्त करें

निम्नलिखित उदाहरण में, अनुरोध विभिन्न सूचकांकों से कई दस्तावेज़ प्राप्त करता है जैसा कि दिखाया गया है:

कर्ल -XGET 'http://localhost:9200/_mget' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'दस्तावेज़': [
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'T3wnVoMBck2AEzXPytlJ'
},
{
'_index': 'डिज़्नी',
'_id': '8j4wWoMB1yF5VqfaKCE4'
}
]
}'

परिणामी आउटपुट जैसा दिखाया गया है:

उदाहरण 3: विशिष्ट फ़ील्ड को बाहर करें

हम source_include और source_exclude पैरामीटर का उपयोग करके किसी दिए गए अनुरोध से विशिष्ट फ़ील्ड को बाहर कर सकते हैं।

एक उदाहरण दिखाया गया है:

कर्ल -XGET 'http://localhost:9200/_mget' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'दस्तावेज़': [
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'T3wnVoMBck2AEzXPytlJ',
'_स्रोत': झूठा
},
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'T3wnVoMBck2AEzXPytlJ',
'_स्रोत': {
'शामिल करें': ['सूचीबद्ध_इन', 'रिलीज़_वर्ष', 'शीर्षक'],
'बहिष्कृत': [ 'विवरण', 'प्रकार', 'date_added']
}
}
]

}'

दिया गया अनुरोध स्रोत शामिल और बहिष्कृत का उपयोग करता है यह निर्दिष्ट करने के लिए कि आप किसी दिए गए दस्तावेज़ में कौन से फ़ील्ड पुनर्प्राप्त करना चाहते हैं।

परिणामी आउटपुट जैसा दिखाया गया है:

निष्कर्ष

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

हैप्पी कोडिंग!