Looking for elasticsearch Answers? Try Ask4KnowledgeBase
Looking for elasticsearch Keywords? Try Ask4Keywords

Elasticsearchएलिटिक्स खोज विन्यास


टिप्पणियों

एलेस्टिक्स खोज में चूक के एक सेट के साथ आता है जो विकास के लिए अच्छा अनुभव प्रदान करता है। निहित कथन यह है कि यह उत्पादन के लिए आवश्यक रूप से महान नहीं है, जिसे आपकी अपनी आवश्यकताओं के अनुरूप होना चाहिए और इसलिए इसका अनुमान नहीं लगाया जा सकता है।

डिफ़ॉल्ट सेटिंग्स बिना किसी कॉन्फ़िगरेशन परिवर्तन के एक ही मशीन पर कई नोड्स को डाउनलोड और चलाना आसान बनाते हैं।

सेटिंग्स कहां हैं?

एलिस्टिक्सखोज की प्रत्येक स्थापना के अंदर एक config/elasticsearch.yml । यह वह जगह है जहाँ निम्नलिखित सेटिंग्स रहते हैं:

  • cluster.name
    • नोड में शामिल होने वाले क्लस्टर का नाम। एक ही क्लस्टर में सभी नोड्स को समान नाम साझा करना होगा
    • वर्तमान में elasticsearch में चूक।
  • node.*
    • node.name
      • यदि आपूर्ति नहीं की जाती है, तो नोड शुरू होने पर हर बार एक यादृच्छिक नाम उत्पन्न होगा। यह मजेदार हो सकता है, लेकिन यह उत्पादन वातावरण के लिए अच्छा नहीं है।
      • नामों को अद्वितीय नहीं होना चाहिए , लेकिन उन्हें अद्वितीय होना चाहिए।
    • node.master
      • एक बूलियन सेटिंग। जब true , तो इसका मतलब है कि नोड एक योग्य मास्टर नोड है और यह निर्वाचित मास्टर नोड हो सकता है
      • करने के लिए चूक true , प्रत्येक नोड अर्थ एक पात्र मास्टर नोड है।
    • node.data
      • एक बूलियन सेटिंग। जब यह true , तो इसका मतलब है कि नोड डेटा को संग्रहीत करता है और खोज गतिविधि को संभालता है।
      • true अवहेलना।
  • path.*
    • path.data
      • फ़ाइलें जो नोड के लिए लिखी गई हैं। सभी नोड्स मेटाडेटा को संग्रहीत करने के लिए इस निर्देशिका का उपयोग करते हैं , लेकिन डेटा नोड्स इसे दस्तावेज़ों को संग्रहीत / अनुक्रमित करने के लिए भी उपयोग करेंगे।
      • चूक ./data
        • इसका मतलब यह है कि आपके लिए एलीस्टेकर्च निर्देशिका के अंदर config करने के लिए सहकर्मी निर्देशिका के रूप में data बनाया जाएगा।
    • path.logs
      • फ़ाइलों को लॉग करने वाले स्थान को लिखा जाता है।
      • ./logs डिफ़ॉल्ट
  • network.*
    • network.host

      • डिफ़ॉल्ट रूप से _local_ , जो प्रभावी रूप से localhost
        • इसका मतलब है कि, डिफ़ॉल्ट रूप से, नोड्स को वर्तमान मशीन के बाहर से संचारित नहीं किया जा सकता है!
    • network.bind_host

      • संभावित रूप से एक सरणी, यह इलास्टिसर्च को बताता है कि सॉकेट्स को बांधने के लिए वर्तमान मशीन के पते क्या हैं।
        • यह इस सूची है जो इस नोड से बात करने के लिए मशीन के बाहर से मशीनों (जैसे, क्लस्टर में अन्य नोड्स) को सक्षम करता है।
      • network.host लिए डिफ़ॉल्ट।
    • network.publish_host

      • एक एकल होस्ट जिसका उपयोग अन्य नोड्स के लिए विज्ञापन करने के लिए किया जाता है कि इस नोड के साथ सबसे अच्छा संवाद कैसे किया जाए।
        • जब एक सरणी को network.bind_host आपूर्ति की जा रही है, तो यह एक ऐसा होस्ट होना चाहिए जिसका उपयोग इंटर-नोड संचार के लिए किया जाना है।
      • Network.host` के लिए डिफ़ॉल्ट।
  • discovery.zen.*
    • discovery.zen.minimum_master_nodes
      • मास्टर चुनाव के लिए कोरम को परिभाषित करता है। इसे इस समीकरण का उपयोग करके सेट किया जाना चाहिए: (M / 2) + 1 जहां M योग्य मास्टर नोड्स की संख्या है (नोड्स का उपयोग कर नोड्स node.master: true निहित या स्पष्ट रूप से)।
      • 1 लिए डिफ़ॉल्ट, जो केवल एकल नोड क्लस्टर के लिए मान्य है!
    • discovery.zen.ping.unicast.hosts
      • क्लस्टर के बाकी हिस्सों में इस नोड में शामिल होने के लिए तंत्र।
      • यह योग्य मास्टर नोड्स को सूचीबद्ध करना चाहिए ताकि एक नोड बाकी क्लस्टर को पा सके।
      • यहां जिस मूल्य का उपयोग किया जाना चाहिए, वह उन अन्य नोड्स का network.publish_host है।
      • localhost लिए चूक, जिसका अर्थ है कि यह केवल स्थानीय मशीन पर एक क्लस्टर में शामिल होने के लिए दिखता है।

किस प्रकार की सेटिंग्स मौजूद हैं?

इलास्टिसर्च तीन अलग-अलग प्रकार की सेटिंग्स प्रदान करता है:

  • क्लस्टर-वाइड सेटिंग्स
    • ये सेटिंग्स हैं जो क्लस्टर में सब कुछ पर लागू होती हैं, जैसे कि सभी नोड्स या सभी सूचकांक।
  • नोड सेटिंग्स
    • ये ऐसी सेटिंग्स हैं जो केवल वर्तमान नोड पर लागू होती हैं।
  • सूचकांक सेटिंग्स
    • ये ऐसी सेटिंग्स हैं जो सिर्फ इंडेक्स पर लागू होती हैं।

सेटिंग के आधार पर, यह हो सकता है:

  • रनटाइम पर गतिशील रूप से परिवर्तित
  • सूचकांक के पुनः आरंभ (बंद / खुला) के बाद बदला गया
    • कुछ इंडेक्स-लेवल सेटिंग्स को इंडेक्स को बंद करने और फिर से खोलने की आवश्यकता नहीं होती है, लेकिन सेटिंग को लागू करने के लिए इंडेक्स को जबरन फिर से मर्ज करने की आवश्यकता हो सकती है।
      • एक सूचकांक का संपीड़न स्तर इस प्रकार की सेटिंग का एक उदाहरण है। इसे गतिशील रूप से बदला जा सकता है, लेकिन केवल नए खंड ही परिवर्तन का लाभ उठाते हैं। इसलिए यदि कोई इंडेक्स नहीं बदलेगा, तो यह कभी भी बदलाव का फायदा नहीं उठाएगा जब तक कि आप इंडेक्स को उसके सेगमेंट को दोबारा बनाने के लिए मजबूर न करें।
  • नोड के पुनरारंभ के बाद परिवर्तित
  • क्लस्टर के पुनः आरंभ के बाद बदला गया
  • कभी बदला नहीं गया

हमेशा सेटिंग के साथ आप क्या कर सकते हैं या नहीं कर सकते, इसके लिए एलिस्टिक्सखोज के अपने संस्करण के दस्तावेज की जांच करें।

मैं सेटिंग्स कैसे लागू कर सकता हूं?

आप कुछ तरीके सेट कर सकते हैं, जिनमें से कुछ का सुझाव नहीं दिया गया है:

  • कमांड लाइन तर्क

इलास्टिक्स खोज 1.x और 2.x में, आप ज्यादातर सेटिंग्स को जावा सिस्टम प्रॉपर्टीज के साथ उपसर्ग के रूप में सबमिट कर सकते हैं es. :

$ bin/elasticsearch -Des.cluster.name=my_cluster -Des.node.name=`hostname`

Elasticsearch 5.x में, यह जावा सिस्टम प्रॉपर्टी के उपयोग से बचने के लिए बदलता है, इसके बजाय -Des. की जगह -E लेने के साथ एक कस्टम तर्क प्रकार का उपयोग करता है -Des. :

$ bin/elasticsearch -Ecluster.name=my_cluster -Enode.name=`hostname`

क्लस्टर शुरू करने और रोकने के लिए कठपुतली, रसोइया, या उपकरण जैसे उपकरणों का उपयोग करते समय सेटिंग लागू करने के लिए यह दृष्टिकोण बहुत अच्छा काम करता है। हालांकि यह मैन्युअल रूप से करते समय बहुत खराब काम करता है।

  • YAML सेटिंग्स
    • उदाहरणों में दिखाया गया है
  • गतिशील सेटिंग्स
    • उदाहरणों में दिखाया गया है

सेटिंग्स को लागू करने का क्रम सबसे गतिशील के क्रम में हैं:

  1. क्षणिक सेटिंग्स
  2. लगातार सेटिंग
  3. कमांड लाइन सेटिंग्स
  4. YAML (स्थिर) सेटिंग्स

यदि सेटिंग उन स्तरों में से किसी एक पर दो बार सेट की जाती है, तो उच्चतम स्तर प्रभावी होता है।

एलिटिक्स खोज विन्यास संबंधित उदाहरण