2015-10-13 13 views
5

मैंने परीक्षण के लिए एक नया एडब्ल्यूएस लोचदार खोज डोमेन बनाया है। मैं अभी एक अलग मेजबान पर ईएस का उपयोग करता हूं, और मैं एडब्ल्यूएस में जाने के लिए देख रहा हूं।एडब्ल्यूएस पर लोचदार खोज सूचकांक बंद नहीं कर सकता?

मुझे एक चीज करने की ज़रूरत है जो मेरे उदाहरण पर मैपिंग (विश्लेषक) सेट करें। ऐसा करने के लिए, मुझे इंडेक्स को "बंद" करने की आवश्यकता है, अन्यथा ईएस सिर्फ अपवाद उठाएगा।

जब भी मैं सूचकांक बंद करने की कोशिश है, हालांकि, मैं एक अपवाद एडब्ल्यूएस से मिलता है:

curl -XPOST 'http://search-weblogs-abcdefghijklmnojiu.us-east-1.a9.com/_all/_close' 

मैं नहीं है:

Your request: '/_all/_close' is not allowed by CloudSearch. 

AWS ES documentation विशेष रूप से कुछ मामलों में यह करने के लिए कहते हैं कोई दस्तावेज मिला जो कहता है कि मैं एडब्ल्यूएस ईएस पर अपने सूचकांक बंद क्यों नहीं कर पाऊंगा, न ही मुझे कोई और व्यक्ति मिला है जिसकी यह समस्या है।

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

धन्यवाद!

+0

अच्छा लग रहा "वर्तमान में, अमेज़न ES Elasticsearch _close एपीआई का समर्थन नहीं करता", आप एडब्ल्यूएस सीधे इस समस्या के लिए संपर्क किया था? – BMW

+0

बीएमडब्लू: मुझे अपने मंचों पर पोस्ट करने का प्रयास करते समय भी एक (और अधिक सामान्य) त्रुटि मिल रही है। : पी –

उत्तर

0

चूंकि सभी इंडेक्स एक बार में बंद करना एक खतरनाक कार्रवाई है, इसलिए यह आपके क्लस्टर पर डिफ़ॉल्ट रूप से अक्षम हो सकता है। आप सुनिश्चित करें कि आपके elasticsearch.yml विन्यास फाइल इस शामिल नहीं है बनाने की जरूरत है:

action.destructive_requires_name: true 

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

action.destructive_requires_name: false 

क्या आप के बजाय क्या करना चाहिए करने के लिए अस्थायी रूप से अद्यतन

curl -XPUT localhost:9200/_cluster/settings -d '{ 
    "persistent" : { 
     "action.destructive_requires_name" : false 
    } 
}' 

का उपयोग कर फिर एक सुरक्षित मूल्य के लिए अपने सभी सूचकांकों

curl -XPOST localhost:9200/_all/_close 

सेटिंग्स बंद और फिर रीसेट क्लस्टर सेटिंग्स है :

curl -XPUT localhost:9200/_cluster/settings -d '{ 
    "persistent" : { 
     "action.destructive_requires_name" : true 
    } 
}' 
+1

एडब्ल्यूएस ईएस एक उच्च स्तरीय सेवा है, और 'elasticsearch.yml' तक सीधे पहुंच प्रदान नहीं करता है। जब मैं '/ _cluster/सेटिंग्स' को पुट करने का प्रयास करता हूं तो मुझे" पेलोड की अनुमति नहीं है "त्रुटि मिलती है। –

+0

क्या आप कम से कम एक इंडेक्स को '/ your_index/_close' का उपयोग करके बंद कर सकते हैं? – Val

+0

आपके उत्तर ने मुझे एक विचार दिया। मैं अपने क्लाइंट लाइब्रेरी से '.close (index = INDEX_NAME) 'कर रहा हूं, लेकिन ऐसा लगता है कि यह कुछ कारणों से तार को'/_all/_close' के रूप में मार रहा है।तो मैंने 'curl -XPOST होस्ट/my_index/_close' की कोशिश की, और एडब्ल्यूएस रिपोर्ट करता है कि यह" क्लाउडशर्च द्वारा अनुमति नहीं है "या तो। अरे। –

3

एडब्ल्यूएस लोचदार खोज इंडेक्स पर "करीबी" ऑपरेशन का समर्थन नहीं करता है।

http://docs.aws.amazon.com/elasticsearch-service/latest/developerguide/es-managedomains.html

+0

हां, उन्होंने प्रलेखन बदल दिया। मुझे लगता है कि उनके दस्तावेज और कार्यान्वयन दल वास्तव में एक-दूसरे से बात नहीं करते हैं। यहां तक ​​कि अजनबी, दस्तावेज़ इतिहास में इस बदलाव का कोई रिकॉर्ड नहीं है। –

+1

यदि आप मैपिंग जोड़ना चाहते हैं, तो आपको रीइंडेक्स करना होगा। ऐसा करने के लिए उपनामों का उपयोग करने के बारे में कुछ अच्छे लेख हैं। बुनियादी कदम - एक पढ़ा उपनाम और एक लेखन उपनाम बनाएँ। वर्तमान सूचकांक के लिए उपनाम पढ़ें। नए मैपिंग के साथ नई अनुक्रमणिका बनाएं। नए सूचकांक को प्वाइंट लिखें उपनाम। फिर पुरानी अनुक्रमणिका को नई अनुक्रमणिका में कॉपी करें (पढ़ने के उपनाम से पढ़ें, उपनाम लिखने के लिए लिखें)। इसमें इसके बजाय उपनामों का उपयोग करने के लिए मौजूदा कोड को संशोधित करना शामिल है। https://www.elastic.co/guide/en/elasticsearch/guide/current/reindex.html https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-aliases .html – burn0050

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