एलेस्टिक्स खोज - IngestNode
index.blocks.read_only | 1 सच / झूठ | इंडेक्स और इंडेक्स मेटाडेटा को केवल पढ़ने के लिए सही पर सेट करें, लिखने और मेटाडेटा परिवर्तन की अनुमति देने के लिए गलत। |
कभी-कभी हमें इसे इंडेक्स करने से पहले किसी डॉक्यूमेंट को बदलना पड़ता है। उदाहरण के लिए, हम किसी फ़ील्ड को दस्तावेज़ से निकालना चाहते हैं या किसी फ़ील्ड का नाम बदलना और फिर उसे अनुक्रमित करना चाहते हैं। इसे Ingest नोड द्वारा नियंत्रित किया जाता है।
क्लस्टर के प्रत्येक नोड में निगलना की क्षमता है लेकिन इसे केवल विशिष्ट नोड्स द्वारा संसाधित किए जाने के लिए अनुकूलित किया जा सकता है।
कदम शामिल किए गए
निगलना नोड के काम में दो चरण शामिल हैं -
- पाइप लाइन बनाना
- एक डॉक्टर बनाना
एक पाइपलाइन बनाएँ
पहले एक पाइपलाइन बनाना जिसमें प्रोसेसर शामिल हैं और फिर पाइपलाइन निष्पादित करना, जैसा कि नीचे दिखाया गया है -
PUT _ingest/pipeline/int-converter
{
"description": "converts the content of the seq field to an integer",
"processors" : [
{
"convert" : {
"field" : "seq",
"type": "integer"
}
}
]
}
उपरोक्त कोड चलाने पर, हमें निम्न परिणाम मिलते हैं -
{
"acknowledged" : true
}
एक डॉक्टर बनाएँ
आगे हम पाइपलाइन कनवर्टर का उपयोग करके एक दस्तावेज़ बनाते हैं।
PUT /logs/_doc/1?pipeline=int-converter
{
"seq":"21",
"name":"Tutorialspoint",
"Addrs":"Hyderabad"
}
उपरोक्त कोड चलाने पर, हमें नीचे दिखाए अनुसार प्रतिक्रिया मिलती है -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"result" : "created",
"_shards" : {
"total" : 2,
"successful" : 1,
"failed" : 0
},
"_seq_no" : 0,
"_primary_term" : 1
}
अगला हम नीचे दिए गए GET कमांड का उपयोग करके ऊपर बनाए गए डॉक्टर की खोज करते हैं -
GET /logs/_doc/1
उपरोक्त कोड चलाने पर, हमें निम्न परिणाम मिलते हैं -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "1",
"_version" : 1,
"_seq_no" : 0,
"_primary_term" : 1,
"found" : true,
"_source" : {
"Addrs" : "Hyderabad",
"name" : "Tutorialspoint",
"seq" : 21
}
}
आप ऊपर देख सकते हैं कि 21 पूर्णांक बन गया है।
बिना पाइपलाइन के
अब हम पाइपलाइन का उपयोग किए बिना एक दस्तावेज़ बनाते हैं।
PUT /logs/_doc/2
{
"seq":"11",
"name":"Tutorix",
"Addrs":"Secunderabad"
}
GET /logs/_doc/2
उपरोक्त कोड चलाने पर, हमें निम्न परिणाम मिलते हैं -
{
"_index" : "logs",
"_type" : "_doc",
"_id" : "2",
"_version" : 1,
"_seq_no" : 1,
"_primary_term" : 1,
"found" : true,
"_source" : {
"seq" : "11",
"name" : "Tutorix",
"Addrs" : "Secunderabad"
}
}
आप ऊपर देख सकते हैं कि 11 एक स्ट्रिंग है जिसका उपयोग पाइपलाइन के बिना किया जा रहा है।