Elasticsearch डिफ़ॉल्ट रूप से एक खोज क्वेरी निष्पादित करने पर दस्तावेज़ में सभी फ़ील्ड लौटाएगा। इसे _source पैरामीटर द्वारा परिभाषित किया जाता है, जिसमें अनुक्रमण के दौरान रिकॉर्ड में संग्रहीत सभी डेटा शामिल होते हैं।
कर्ल -XGET 'http://localhost:9200/netflix/_doc/HXYz_IIBLbuC0z3qKeN2?pretty' -H 'kbn-xsrf: रिपोर्टिंग'आउटपुट:
हालांकि, हो सकता है कि आप किसी दिए गए दस्तावेज़ से सभी फ़ील्ड पुनर्प्राप्त नहीं करना चाहें। इस ट्यूटोरियल में, आप सीखेंगे कि किसी दस्तावेज़ से विशिष्ट फ़ील्ड का चयन कैसे करें।
लोचदार खोज फ़ील्ड विकल्प
फ़ील्ड पैरामीटर हमें खोज अनुरोध में विशिष्ट फ़ील्ड पुनर्प्राप्त करने की अनुमति देता है। इसके अलावा, फ़ील्ड पैरामीटर हमें एकल या एकाधिक फ़ील्ड लाने में सक्षम करेगा। आप फ़ील्ड पैरामीटर का उपयोग करके दिनांक और स्थानिक डेटा प्रकारों को भी प्रारूपित कर सकते हैं।
उदाहरण के लिए, मान लीजिए कि हम नेटफ्लिक्स इंडेक्स से इंडेक्स, आईडी, टाइटल, रिलीज_इयर, लिस्टेड इन, अवधि और रेटिंग फील्ड को पुनः प्राप्त करना चाहते हैं, हम नीचे दिखाए गए अनुसार एक क्वेरी चला सकते हैं:
कर्ल -XGET 'http://localhost/netflix/_search' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'
{
'सवाल': {
'मिलान': {
'_id': 'HXYz_IIBLbuC0z3qKeN2'
}
},
'खेत': [
'अनुक्रमणिका',
'पहचान',
'शीर्षक',
'रिहाई का वर्ष',
'में सूचीबद्ध',
'अवधि',
'रेटिंग'
],
'_स्रोत': झूठा
}'
उपरोक्त अनुरोध में, हम मिलान पैरामीटर में निर्दिष्ट आईडी के साथ दस्तावेज़ को खोजने के लिए खोज एपीआई का उपयोग करते हैं।
फिर हम लक्ष्य दस्तावेज़ से विशिष्ट फ़ील्ड लाने के लिए फ़ील्ड पैरामीटर का उपयोग करते हैं।
ध्यान दें कि Elasticsearch डिफ़ॉल्ट रूप से _source पैरामीटर को शामिल करेगा, जिसमें सभी दस्तावेज़ फ़ील्ड शामिल होंगे। यह सुनिश्चित करने के लिए कि हम केवल निर्दिष्ट फ़ील्ड प्राप्त करें, हम _source पैरामीटर को बंद कर देते हैं:
ऊपर दिए गए अनुरोध को दिखाए गए अनुसार प्रतिक्रिया देनी चाहिए:
{'ले लिया': 1,
'timed_out': झूठा,
'_शर्ड्स': {
'कुल': 1,
'सफल': 1,
'छोड़ दिया': 0,
'विफल': 0
},
'हिट': {
'कुल': {
'मूल्य': 1,
'संबंध': 'ईक'
},
'मैक्स_स्कोर': 1,
'हिट': [
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_स्कोर': 1,
'खेत': {
'में सूचीबद्ध': [
'वृत्तचित्र'
],
'अवधि': [
'90 मिनट'
],
'रिहाई का वर्ष': [
2020
],
'रेटिंग': [
'पीजी-13'
],
'शीर्षक': [
'डिक जॉनसन मर चुका है'
]
}
}
]
}
}
आप _source पैरामीटर का उपयोग यह निर्धारित करने के लिए भी कर सकते हैं कि किसी खोज क्वेरी से कौन से फ़ील्ड वापस लौटना है। एक उदाहरण नीचे दिया गया है:
कर्ल -XGET 'http://localhost:9200/netflix/_search' -H 'kbn-xsrf: रिपोर्टिंग' -H 'सामग्री-प्रकार: एप्लिकेशन/जेसन' -d'{
'_source': ['शीर्षक', 'रिलीज़_वर्ष', 'रेटिंग', 'अवधि'],
'सवाल': {
'शर्त': {
'_पहचान': {
'मान': 'HXYz_IIBLbuC0z3qKeN2'
}
}
}
}'
इस मामले में, हम उन फ़ील्ड को निर्दिष्ट करते हैं जिन्हें हम स्रोत पैरामीटर में एक सरणी के रूप में पुनर्प्राप्त करना चाहते हैं। ऊपर दिए गए अनुरोध को दिखाए गए अनुसार प्रतिक्रिया वापस करनी चाहिए:
{'लिया': 0,
'timed_out': झूठा,
'_शर्ड्स': {
'कुल': 1,
'सफल': 1,
'छोड़ दिया': 0,
'विफल': 0
},
'हिट': {
'कुल': {
'मूल्य': 1,
'संबंध': 'ईक'
},
'मैक्स_स्कोर': 1,
'हिट': [
{
'_इंडेक्स': 'नेटफ्लिक्स',
'_id': 'HXYz_IIBLbuC0z3qKeN2',
'_स्कोर': 1,
'_स्रोत': {
'अवधि': '90 मिनट',
'रिलीज़_इयर': 2020,
'रेटिंग': 'पीजी-13',
'शीर्षक': 'डिक जॉनसन मर चुका है'
}
}
]
}
}
निष्कर्ष
इस लेख में, आपने सीखा कि फ़ील्ड और _source पैरामीटर का उपयोग करके खोज अनुरोध से विशिष्ट फ़ील्ड कैसे प्राप्त करें।
इलास्टिक्स खोज और इसकी क्षमताओं के बारे में अधिक जानने के लिए, इस विषय पर हमारे ट्यूटोरियल देखें। आपको कुछ उपयोगी खोजने की गारंटी है।
अगले एक में पढ़ने और पकड़ने के लिए धन्यवाद !!