2011-10-19 3 views
8

मैं एक फ़ाइल में elasticsearch सेटिंग्स + मैपिंग कैसे स्टोर कर सकता हूं (जैसे Solma के लिए schema.xml)? वर्तमान में, जब मैं अपने मैपिंग में बदलाव करना चाहता हूं, तो मुझे अपनी अनुक्रमणिका सेटिंग्स को हटाना होगा और फिर से शुरू करना होगा। क्या मैं कुछ भूल रहा हूँ?मैं एक फ़ाइल में elasticsearch सेटिंग्स + मैपिंग कैसे स्टोर कर सकता हूं (जैसे सोलर के लिए schema.xml)

मेरे पास अभी तक कोई बड़ा डेटा सेट नहीं है। लेकिन बड़ी मात्रा में डेटा की तैयारी में जो अनुक्रमित किया जाएगा, मैं सेटिंग्स को संशोधित करने में सक्षम होना चाहता हूं और कुछ हर बार पूरी तरह से ताजा शुरू किए बिना रीइंडेक्स कैसे कर सकता हूं। क्या यह संभव है और यदि ऐसा हो तो कैसे?

उत्तर

16

ये वास्तव में एक के रूप में छिपे हुए कई प्रश्न हैं। फिर भी:

मैं एक फ़ाइल में elasticsearch सेटिंग्स + मैपिंग कैसे स्टोर कर सकता हूं (जैसे Solma के लिए schema.xml)?

सबसे पहले, ध्यान दें, कि आप नहीं इस तरह की तारीख, पूर्णांकों, या यहाँ तक तार (डिफ़ॉल्ट विश्लेषक आप के लिए ठीक है) के रूप में प्रकार के बहुत सारे, के लिए मानचित्रण स्पष्ट करना पड़ता है।

आप में विभिन्न तरीकों से सेटिंग और मैपिंग स्टोर कर सकते हैं ElasticSearch < 1.7: एक सूचकांक template file

  • में

    1. मुख्य elasticsearch.yml file
    2. में एक separate file with mappings
    में

    वर्तमान में, जब मैं अपने मैपिंग में बदलाव करना चाहता हूं, तो मुझे अपनी अनुक्रमणिका सेटिंग्स को हटाना होगा और फिर से शुरू करना होगा। क्या मैं कुछ भूल रहा हूँ?

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

    ध्यान दें, कि आप कर सकते हैं update index settings, इस तरह के number_of_replicas, "मक्खी पर" के रूप में विशिष्ट मामलों में।

    मैं सेटिंग्स को संशोधित करने में सक्षम होना चाहता हूं और कुछ हर बार पूरी तरह से ताजा शुरू किए बिना रीइंडेक्स कैसे करना चाहता हूं। क्या यह संभव है और यदि ऐसा हो तो कैसे?

    के रूप में कहा: आप अपने दस्तावेज़ों पुन: अनुक्रमणिका चाहिए, आप उनके लिए एक पूरी तरह से नए मानचित्रण उपयोग करना चाहते हैं।

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

  • +0

    कई प्रश्नों के लिए खेद है। यह मेरे लिए एक ही परिदृश्य था क्योंकि मुझे पूरी प्रक्रिया शुरू किए बिना पुनः सूचकांक नहीं मिला था। आपकी प्रतिक्रिया के लिए धन्यवाद। मैं वर्तमान में एनजीआरएम और एजग्राम टोकेनाइज़र का उपयोग करके मैपिंग्स को संशोधित कर रहा हूं और उन्हें सही तरीके से प्राप्त करने के प्रयास में उन्हें फिर से लिखना पड़ा। – jbattle

    +0

    मैंने अपनी मैपिंग + सेटिंग्स को एक शेल स्क्रिप्ट के अंदर रखा है ताकि मेरी अनुक्रमणिका का निर्माण और कॉन्फ़िगरेशन एक तेज प्रक्रिया हो सके। – jbattle

    +0

    हां, ज्यादातर परिदृश्यों में, यह कस्टम प्रक्रिया में इंडेक्स निर्माण को लपेटने के लिए समझ में आता है (शेल स्क्रिप्ट, रूबी में क्लास विधि आदि हो सकता है)। मैं बस कई तरीकों से इंगित करना चाहता था ElasticSearch आपको खोज इंजन स्तर पर मानचित्रण/सेटिंग्स तर्क को "लपेट" देता है। इस अच्छे उत्तर के लिए – karmi

    0

    Elasticsearch 2.0 के बाद से:

    यह अब config निर्देशिका में फ़ाइलों में मैपिंग निर्दिष्ट करने के लिए संभव है।

    प्रलेखन लिंक here खोजें।

    templates निर्देशिका के तहत कॉन्फ़िगरेशन स्थान (path.conf) में इंडेक्स टेम्पलेट्स को स्टोर करना अब भी संभव नहीं है।

    path.conf (/etc/default/elasticsearch उबंटू पर डिफ़ॉल्ट रूप से) अब केवल हेप आकार, फ़ाइल वर्णनकर्ताओं सहित पर्यावरण चर शामिल हैं।

    आपको curl के साथ अपने टेम्पलेट्स बनाने की आवश्यकता है।

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

    संबंधित मुद्दे

     संबंधित मुद्दे