2013-05-14 8 views
14

मैं एक निर्दिष्ट दस्तावेज़ प्रकार "mytype" के साथ एक सूचकांक "myindex" बनाते हैं। मैं इंडेक्स को हटाने में सक्षम हूं, लेकिन ऐसा लगता है कि "mytype" अभी भी इंडेक्स से बंधे बिना मौजूद है।elasticsearch में दस्तावेज़ प्रकारों को कैसे हटाएं?

मैं "mytype" से कैसे छुटकारा पा सकता हूं?

+0

यदि आप एक अनुक्रमणिका हटाते हैं, तो संबंधित प्रकार भी हटा दिए जाते हैं, वे इंडेक्स के बिना मौजूद नहीं हो सकते हैं। आपको क्या लगता है कि "mytype" अभी भी मौजूद है? – mguillermin

+0

"हेड" प्लगइन में, मैं "ब्राउज़र" पर जा सकता हूं और देख सकता हूं कि "mytype" को "प्रकार" – Rolando

+0

अजीब के तहत सूचीबद्ध किया गया है। एक मैपिंग एक प्रकार और एक प्रकार के सूचकांक से संबंधित है। यदि आप इंडेक्स को हटाते हैं तो आप उन्हें सब खो देते हैं। क्या आप वाकई हटाए गए एपीआई का उपयोग कर इंडेक्स हटा चुके हैं? – javanna

उत्तर

40

यदि आपने वास्तव में इंडेक्स को हटा दिया है, तो इस इंडेक्स में मैपिंग अब मौजूद नहीं होना चाहिए। क्या आपके पास अपने क्लस्टर में एक समान प्रकार के नाम के साथ कोई अन्य अनुक्रमणिका है?

सवाल का जवाब करने के लिए: How to delete document types in elasticsearch?, Delete Mapping API का उपयोग करें:

curl -XDELETE http://localhost:9200/index/type 

संपादित: elasticsearch 2.0 से, यह संभव अब और नहीं होगा। Mapping changes देखें। आपको Delete By Query plugin इंस्टॉल करना होगा और एक क्वेरी चलाएं जो आपके दस्तावेज़ों को हटा देगी लेकिन मानचित्रण अभी भी मौजूद रहेगा। तो यह आपके दस्तावेज़ों को पुराने प्रकार के बिना किसी अन्य इंडेक्स में रीइंडेक्स करने की संभावना अधिक होगी।

लेकिन जैसे @mguillemin और @javanna कहा, जब आप एक सूचकांक हटाने के लिए, हर मानचित्रण इस सूचकांक से जुड़ी रूप में अच्छी तरह से नष्ट कर दिया जाता है:

curl -XDELETE http://localhost:9200/index 
+0

मैं कर्ल और समझ के माध्यम से ऐसा करने में सक्षम हूं लेकिन मैं लोचदार क्लाइंट के लिए पाइथन क्लाइंट का उपयोग करके एक प्रकार कैसे हटा सकता हूं, हालांकि मैं हूं हटाए गए फ़ंक्शन का उपयोग करके एक दस्तावेज़ में एक दस्तावेज़ को हटाने में सक्षम। –

+0

मैंने elasticsearch 2.0 के लिए प्रारंभिक उत्तर संपादित किया। – dadoonet

+0

क्वेरी प्लगइन द्वारा डिलीट करने का लिंक https://www.elastic.co/guide/en/elasticsearch/plugins/current/plugins-delete-by-query.html होना चाहिए –

1

लोचदार खोज के नवीनतम संस्करण में, वे अब हटाने का समर्थन दस्तावेज़ प्रकार इसका उल्लेख documentation

किसी प्रकार के लिए मैपिंग को हटाने के लिए अब संभव नहीं है। इसके बजाय आप को इंडेक्स को हटाना चाहिए और इसे नए मैपिंग के साथ फिर से बनाना चाहिए।

1

आप प्रकार को हटाने के लिए _delete_by_query पथ का उपयोग कर सकते हैं।

POST index-name/type-name/_delete_by_query 
{ 
    "query": { 
     "match": { 
      "message": "some message" 
     } 
    } 
} 
1

आपको अनुरोध निकाय को निर्दिष्ट करने की भी आवश्यकता नहीं है। बस

curl -XPOST http://<host>:9200/<index>/<type>/_delete_by_query 
संबंधित मुद्दे