2016-07-01 8 views
19

मैं किबाना के लिए नया हूं, डेटा को लोचदार 5.0.0-अल्फा 3 में लोड किया गया है और विज़ुअलाइज़ करने के लिए किबाना 5.0.0-अल्फा 3 का उपयोग कर रहा हूं। मैं हिस्टोग्राम के रूप में कुछ संख्यात्मक फ़ील्ड प्रदर्शित कर सकते हैं लेकिन जब मैं पाठ फ़ील्ड का उपयोग करना चाहते मैं:किबाना में फ़ील्डडाटा = सत्य कैसे सेट करें

Visualize: Fielddata is disabled on text fields by default. Set fielddata=true on [publisher] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory. 

मैं चेतावनी दी है कि डेटा (प्रकाशक के नाम) उपक्षेत्रों में विश्लेषण किया गया है सकते हैं, लेकिन मैं करना चाहते हैं वैसे भी प्रदर्शित करें।

मैं fielddata=true कैसे सेट करूं?

संपादित करें: किबाना गिथब पर हालिया मुद्दों का सुझाव है कि यह 5.0.0 में एक नई सुविधा है और अभी भी एक उत्तर का इंतजार कर रहा है!

संपादित करें (वैल के उत्तर के बाद, और लोचदार नौसिखिया सहायता मांगना, और उम्मीद है कि दूसरों को यह उपयोगी लगेगा)। इंजेस्ट स्क्रिप्ट थी:

fs = require('fs') 

var elasticsearch = require('elasticsearch'); 
var client = new elasticsearch.Client({ 
host: 'localhost:9200', 
log: 'trace' 
}); 

fs.readFile('/Users/pm286/workspace/cmdev/getpapers/20160602/crossref_results.json', (err, data) => { 
    if (err) throw err; 
    document = JSON.parse(data) 
    document = JSON.parse(data) 

    for(i=0;i<document.length;i++) { 
     client.create({ 
      index: 'index', 
      type: 'type', 
      body: document[i] 
      }) 
     } 
    }); 

मैं इसमें @ वैल का दृष्टिकोण कैसे शामिल करूं?

उत्तर

26

अपने ES मानचित्रण में, आप अपने publisher क्षेत्र में fielddata:true निर्धारित करने की आवश्यकता:

PUT your_index/_mapping/your_type 
{ 
    "your_type": { 
     "properties": { 
     "publisher": { 
      "type": "text", 
      "fielddata": true 
     } 
     } 
    } 
} 

आप यह परिवर्तन करने के बाद अपने डेटा पुन: अनुक्रमणिका करने की आवश्यकता होगी, लेकिन बाद में Kibana अब शिकायत नहीं होंगे।

अद्यतन

आप या तो Sense UI में या कर्ल

curl -XPUT http://localhost:9200/index -d '{ 
    "mappings": { 
    "type": { 
     "properties": { 
     "publisher": { 
      "type": "text", 
      "fielddata": true 
     } 
     } 
    } 
    } 
}' 

के माध्यम से ऊपर क्वेरी निष्पादित कर सकते हैं या आप भी सिर्फ अपने दस्तावेज़ बनाने से पहले अपनी जावास्क्रिप्ट फ़ाइल में निष्पादित कर सकते हैं:

client.indices.create({ 
    index: 'index', 
    body: { 
     "mappings": { 
     "type": { 
      "properties": { 
      "publisher": { 
       "type": "text", 
       "fielddata": true 
      } 
      } 
     } 
     } 
    } 
}); 
+0

पर एकत्रीकरण करने के लिए स्वीकार कर लिया है/upvoted की आवश्यकता है। एक लोचदार नौसिखिया के रूप में मैं यह जानना चाहूंगा कि यह कैसे/कहां रखा जाए।प्रश्न –

+0

में नवीनतम EDIT देखें और इसका परीक्षण ठीक होगा। –

+0

दूसरा स्रोत कोड ब्लॉक में एक अवैध JSON है, यह काम नहीं कर रहा है उदाहरण। – TonyQ

10

चूंकि आप लोचदार 5.x (5.2 अब बाहर लिखते हैं) का उपयोग कर रहे हैं, तो आपको instea करना चाहिए अनुक्रमित फ़ील्ड पर फ़ील्डडेटा को सक्षम करने के बजाय नए कीवर्ड समर्थन का उपयोग करें।

https://www.elastic.co/guide/en/elasticsearch/reference/5.2/fielddata.html पेशेवरों और विपक्षों पर और इस पर सेट करने के तरीके पर अच्छी जानकारी प्रदान करता है। पृष्ठ से:

PUT my_index 
{ 
    "mappings": { 
    "my_type": { 
     "properties": { 
     "my_field": { 
      "type": "text", 
      "fields": { 
      "keyword": { 
       "type": "keyword" 
      } 
      } 
     } 
     } 
    } 
    } 
} 

फिर आप खोजों और एकत्रित के लिए 'my_field.keyword' फ़ील्ड, छंटाई, या स्क्रिप्ट में के लिए 'my_field' फ़ील्ड का उपयोग करें।

my_field.keyword वह है जो आप किबाना/ग्राफाना के भीतर उपयोग करेंगे।

5

यह कोड इस समस्या को हल करता है।

PUT megacorp/_mapping/employee 
{ 
    "employee": { 
     "properties": { 
     "interests": { 
      "type": "text", 
      "fielddata": true 
     } 
     } 
    } 
} 

तो यह कोड उसके बाद चलेंगे:

GET /megacorp/employee/_search 
    { 
     "aggs": { 
     "all_interests": { 
      "terms": { "field": "interests"} 
     } 
     } 
    } 
0

एक मौजूदा पाठ क्षेत्र पर fielddata सक्षम करें, इस इस क्षेत्र

PUT megacorp/_mapping/employee 
{ 
    "properties": { 
    "interests": { 
     "type":  "text", 
     "fielddata": true 
    } 
    } 
} 
संबंधित मुद्दे