2014-04-29 9 views
17

में डिफ़ॉल्ट सूचकांक विश्लेषक मुझे लोचदार खोज के साथ एक समस्या का सामना करना पड़ रहा है जहां मैं नहीं चाहता कि मेरी अनुक्रमित अवधि का विश्लेषण किया जाए। लेकिन लोचदार खोज में कुछ डिफ़ॉल्ट सेटिंग है जो इसे अंतरिक्ष पर टोकन कर रही है। इसलिए मेरा पहलू प्रश्न मैं जो परिणाम चाहता हूं उसे वापस नहीं कर रहा है।elasticsearch

मैंने पढ़ा कि "index" : "not_analyzed" इंडेक्स प्रकार के गुणों में काम करना चाहिए। लेकिन समस्या यह है कि मैं हाथ से पहले अपने दस्तावेज़ संरचना को नहीं जानता। मैं तालिका संरचना को जानने के बिना elasticsearch के लिए यादृच्छिक MySQL डेटाबेस अनुक्रमणित किया जाएगा।

मैं लोचदार खोज कैसे स्थापित कर सकता हूं कि डिफ़ॉल्ट रूप से यह अन्यथा पूछे जाने तक "index" : "not_analyzed" का उपयोग करता है। धन्यवाद

पीएस: अगर मैं सीधे इसके लिए किसी भी एपीआई का उपयोग कर रहा हूं तो मैं जावा का उपयोग कर रहा हूं, मैं इसे प्यार करूंगा।

उत्तर

17

मैं गतिशील टेम्पलेट का उपयोग चाहते हैं - यह आप के लिए क्या देख रहे करना चाहिए:

{ 
    "testtemplates" : { 
     "dynamic_templates" : [ 
      { 
       "template1" : { 
        "match" : "*", 
        "match_mapping_type" : "string", 
        "mapping" : { 
         "type" : "string", 
         "index" : "not_analyzed" 
        } 
       } 
      } 
     ] 
    } 
} 

अधिक इस दृष्टिकोण यहाँ पर:

https://www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html#dynamic-templates

महत्वपूर्ण: अगर किसी का सुझाव को हल करने के लिए यह दृष्टिकोण समस्या नहीं है, यह काम नहीं करेगा! कीवर्ड विश्लेषक कुछ डेटा पर विश्लेषण करते हैं और डेटा को छोटे अक्षरों में परिवर्तित करते हैं।

उदा Data: ElasticSearchRocks ==> Keyword Analyzer: elasticsearchrocks

अपने आप को क्वेरी का विश्लेषण करने और इसे देखने के साथ आज़माएं।

curl -XPUT localhost:9200/testindex -d '{ 
    "index" : { 
     "analysis" : { 
      "analyzer" : { 
       "default" : { 
        "type" : "keyword" 
       } 
      } 
     } 
    } 
}' 

http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-keyword-analyzer.html

+0

धन्यवाद गतिशील टेम्पलेट्स मेरे लिए काम करते हैं। –

+1

विशेष रूप से उपयोगी अगर आप इसे डिफ़ॉल्ट मैपिंग पर उपयोग करते हैं: http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/default-mapping.html –

+0

डायनामिक मैपिंग टेम्पलेट दस्तावेज़ स्थानांतरित हो गए हैं: https: // www.elastic.co/guide/en/elasticsearch/guide/current/custom-dynamic-mapping.html#dynamic- टेम्पलेट्स (संपादित करें: ओह, आगे बढ़कर सीधे जवाब संपादित किया .. जो टिप्पणियों को किसी भी तरह से पढ़ता है: पी) – Kaos

6

अपने elasticsearch.yml में index.analysis.analyzer.default.type: keyword जोड़ें।

+0

यह काम करता है ... धन्यवाद – Sivailango