2012-06-05 18 views
9

में मैपिंग और प्रकारों के बीच भ्रम क्षमा करें, मैं ElasticSearch के लिए नया हूं।ElasticSearch

http://www.elasticsearch.org/guide/reference/api/admin-indices-put-mapping.html

इस दस्तावेज़ कहते हैं आप कर सकते हैं

$ curl -XPUT 'http://localhost:9200/twitter/tweet/_mapping' -d ' 
{ 
    "tweet" : { 
     "properties" : { 
      "message" : {"type" : "string", "store" : "yes"} 
     } 
    } 
} 
' 

के रूप में किसी ने मुझे ES आईआरसी चैनल पर कहा था,/ट्विटर/ट्वीट ट्विटर = सूचकांक, ट्वीट "एक मानचित्रण चहचहाना सूचकांक के भीतर ट्वीट बुलाया बनाता है" = टाइप

लेकिन अगर मैं निम्नलिखित करता हूं तो क्या होता है?

$ curl -XPUT 'http://localhost:9200/twitter/XXX/_mapping' -d ' 
{ 
    "YYY" : { 
     "properties" : { 
      "message" : {"type" : "string", "store" : "yes"} 
     } 
    } 
} 
' 

यदि मैंने पहले ही यूआरएल में टाइप नाम प्रदान किया है, तो मुझे अभी भी सामग्री में एक प्रकार का नाम क्यों देना चाहिए? अगर मैं सामग्री में प्रकार का नाम प्रदान करते हैं यही कारण है कि मैं सिर्फ जैसे कुछ यूआरएल फोन नहीं कर सकते हैं:

$ curl -XPUT 'http://localhost:9200/twitter/_mapping' -d ' 

जबकि दस्तावेज़ पढ़ना, मेरे लिए यह कहते हैं, "एक मानचित्रण चहचहाना सूचकांक के भीतर ट्वीट बुलाया बनाता है", इसका मतलब है कि XXX मैपिंग नाम है और वाई वाई वाई टाइप नाम है।

इस प्रकार अगर वहाँ एक मानचित्रण नाम है, वहाँ सामान्य रूप से एक सूचकांक

तो, अंत में, XXX और YYY हैं/एक ही होना चाहिए के लिए कई "मैपिंग" हो सकता है?


यह मैं क्या दस्तावेज़ से समझ में नहीं आता है, लेकिन क्या मुझे लगता है कि यह है: - एक सूचकांक प्रकार हो सकता है - प्रकार एक मानचित्रण इस प्रकार हम एक मानचित्रण का निर्माण नहीं करतीं प्रलेखन की तरह कहते हैं है, लेकिन हम एक प्रकार बनाते हैं, जिसमें मैपिंग है, या हम टाइप मैपिंग नंबर अपडेट करते हैं?

और ऐसे सूचकांक पर जहां मैं किसी भी प्रकार का उपयोग नहीं करना चाहता (सभी दस्तावेज अनुक्रमित डेटा समान हैं), लेकिन मैं उस इंडेक्स के लिए मैपिंग बनाना चाहता हूं, क्या मुझे केवल इसे बनाकर संभालना है एक मैपिंग के साथ एक प्रकार, और हमेशा उस प्रकार का उपयोग करें (उदाहरण के लिए कॉच डीबी नदी में)?

धन्यवाद

उत्तर

10

elasticsearch खोज (0.19.4) "YYY" के वर्तमान संस्करण में नजरअंदाज कर दिया है और मानचित्रण "XXX" प्रकार का कार्य सौंपा गया।

दरअसल, आप प्रकार बनाने के रूप में मैपिंग बनाने के बारे में सोच सकते हैं। आंतरिक रूप से, मैपिंग और दस्तावेज़ीकरण के संदर्भ में प्रकारों का प्रतिनिधित्व किया जाता है, यह केवल इस व्यवहार को दर्शाता है। यदि आपके सभी रिकॉर्ड एक ही प्रकार के हैं, तो आपको इंडेक्स को केवल एक प्रकार के साथ इंडेक्स के रूप में देखना चाहिए। प्रकार का उपयोग विभिन्न प्रकार के "नेमस्पेस" रिकॉर्ड में किया जाता है और इसलिए यह अनिवार्य है। एक आईडी स्वयं विशिष्ट रूप से एक रिकॉर्ड की पहचान नहीं करता है। लोचदार खोज में एक रिकॉर्ड की पहचान करने के लिए, आपको इंडेक्स, टाइप और आईडी होना चाहिए। यही कारण है कि उदाहरण के लिए, ऑपरेशन प्राप्त करने के लिए टाइप एक आवश्यक पैरामीटर है। अन्य परिचालनों के लिए, यदि प्रकार निर्दिष्ट नहीं है, तो elasticsearch मानता है कि आप सभी प्रकार के रिकॉर्ड के साथ ऑपरेशन करना चाहते हैं।

नोट, कि प्रकार किसी भी समय एक नए प्रकार के रिकॉर्ड को जोड़कर गतिशील रूप से बनाया जा सकता है। इसलिए, केवल एक प्रकार वाला इंडेक्स एक इंडेक्स है जिसमें दूसरा प्रकार अभी तक नहीं है।

+0

धन्यवाद यह है कि लॉग मुझे बताते हैं कि –

+0

यह सुनिश्चित नहीं है कि आप जानते हैं लेकिन इंडेक्स निर्माण के दौरान सभी मैपिंग सेट करना संभव है और इसमें अधिक सहज ज्ञान युक्त एपीआई है। इस पृष्ठ के मैपिंग अनुभाग देखें: http: // www।elasticsearch.org/guide/reference/api/admin-indices-create-index.html – imotov

+0

हाँ मैंने इसे देखा है। लेकिन वास्तव में मैं एक कॉच डीबी नदी बनाना चाहता हूं और मुझे नहीं लगता कि मैं कॉच डीबी नदी के साथ इंडेक्स + मैपिंग बना सकता हूं। मुझे लगता है कि मुझे इंडेक्स + मैपिंग (1 कदम या 2) पहले और फिर नदी बनाना चाहिए। –