2013-08-27 4 views
7

ठीक है, मेरी elastisearch में मैं एक सूचकांक के लिए निम्नलिखित मानचित्रण का उपयोग कर रहा हूँ:लोचदार खोज में मैपिंग को परिभाषित करने के लिए कैसे मैप किए गए अन्य क्षेत्रों को स्वीकार नहीं करता है?

{ 

    "mappings": { 
     "mytype": { 
      "type":"object", 
      "dynamic" : "false", 
      "properties": { 
       "name": { 
        "type": "string" 
       }, 
       "address": { 
        "type": "string" 
       }, 
       "published": { 
        "type": "date" 
       } 

      } 
     } 
    } 
} 

यह काम करता है। असल में अगर मैंने "प्रकाशित" क्षेत्र में एक विकृत तिथि डाली है तो यह शिकायत करता है और विफल रहता है।

... 
node.name : node1 
index.mapper.dynamic : false 
index.mapper.dynamic.strict : true 
... 

और मानचित्रण के बिना, मैं वास्तव में प्रकार का उपयोग नहीं कर सकते हैं: इसके अलावा, मैं निम्नलिखित विन्यास है। समस्या यह है कि अगर मैं की तरह कुछ सम्मिलित करें:

{ "नाम": "boh58585", "पता": "hiohio", "प्रकाशित": "2014/04/04", "परीक्षण" : "hophiophop" }

यह खुशी से इसे स्वीकार करेंगे। जो व्यवहार मैं अपेक्षा करता हूं वह नहीं है, क्योंकि क्षेत्र test मैपिंग में नहीं है। मैं दस्तावेज़ के फ़ील्ड को केवल उन लोगों तक सीमित कैसे कर सकता हूं जो मैपिंग में हैं ???

उत्तर

10

"dynamic": false के उपयोग Elasticsearch बताता है एक सूचकांक की मैपिंग परिवर्तित करने की अनुमति देते हैं कभी नहीं करने के लिए। यदि आप परिभाषित मैपिंग के बाहर फ़ील्ड के साथ नए दस्तावेज़ों को अनुक्रमणित करने का प्रयास करते समय एक त्रुटि फेंकना चाहते हैं, तो इसके बजाय "dynamic": "strict" का उपयोग करें।

दस्तावेज़ों से: "गतिशील पैरामीटर भी सख्त पर सेट किया जा सकता है, जिसका अर्थ है कि न केवल नए फ़ील्ड मैपिंग में पेश नहीं किए जाएंगे, ऐसे नए फ़ील्ड के साथ पार्सिंग (इंडेक्सिंग) दस्तावेज़ विफल हो जाएंगे।"

चूंकि आपने इसे सेटिंग्स में परिभाषित किया है, तो मुझे लगता है कि मैपिंग परिभाषा से dynamic को छोड़कर पूरी तरह से "dynamic": "strict" पर डिफ़ॉल्ट होगा।

0

क्या विकृत दिनांक फ़ील्ड के साथ आपकी समस्या है?

मैं तारीख मुद्दे को ठीक और dynamic: false उपयोग करने के लिए जारी रहेगा।

आप ways to set up the date field mapping for a custom format here के बारे में पढ़ सकते हैं।

स्टिक एक {type: date, format: ?} मानचित्रण में दिनांक स्वरूप स्ट्रिंग।

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