2014-04-30 7 views
10

मैं इंडेक्स में मौजूद सभी फ़ील्ड की सूची कैसे प्राप्त करूं (यानी फ़ील्ड जो अनुक्रमित दस्तावेज़ों में होती हैं, न केवल मैपिंग में)?एक लोचदार सूची सूचकांक में सभी क्षेत्रों की सूची?

उत्तर

6

1.3 के साथ शुरू आपके पास _field_names मेटा फ़ील्ड है।

{ 
    "aggs": { 
    "Field names": { 
     "terms": { 
     "field": "_field_names", 
     "size": 10 
     } 
    } 
    } 
} 
+1

प्राप्त करने के लिए एक सिद्धांत/स्पष्टीकरण/संसाधन है। अब 5.x के साथ काम नहीं करता है: https://github.com/elastic/elasticsearch/issues/22576 – naoko

12

स्पष्टीकरण:

मत सोचो वहाँ वास्तव में करने के लिए कोई रास्ता नहीं है। लेकिन चूंकि इंडेक्स में सबकुछ मैपिंग में स्वचालित रूप से फेंक दिया जाता है, हम जानते हैं कि मानचित्रण में कम से कम प्रत्येक फ़ील्ड इंडेक्स में है। वहां से, आप मैपिंग में प्रत्येक फ़ील्ड के माध्यम से लूप कर सकते हैं और उस फ़ील्ड वाले इंडेक्स में परिणामों की संख्या पर गिनती चला सकते हैं। यदि गिनती 0 से अधिक है, तो वह फ़ील्ड मौजूद है; यदि गिनती 0 है, तो वह फ़ील्ड इंडेक्स का हिस्सा नहीं है। चूंकि हम जानते हैं कि इंडेक्स में प्रत्येक फ़ील्ड आपके मैपिंग में मौजूद होगा, इसमें सभी संभावनाएं शामिल होनी चाहिए।

कुछ उदाहरण API कॉल:

# Get the mapping 
$ curl -XGET 'http://localhost:9200/index/type/_mapping?pretty' 

# Count a field 
$ curl -XGET 'http://localhost:9200/index/type/_count' -d ' 
{ 
    "query" : { 
     "constant_score" : { 
      "filter" : { 
       "exists" : { "field" : "name_from_mapping" } 
      } 
     } 
    } 
}' 

प्रलेखन:

+0

कृपया ध्यान दें, कि मेरे उत्तर के साथ आपको वास्तव में यह निर्धारित करने के लिए कुछ कोड (या मैन्युअल श्रम करना) फेंकना होगा कि यह आपके सूचकांक में कौन से फ़ील्ड मौजूद है .. यह आपके प्रारंभ – Sam

0

मैं एक "elasticsearch सूचकांक-fieldlist" प्लगइन, https://github.com/jprante/elasticsearch-index-termlist के समान बनाने अगर वहाँ वास्तव में है एक सूचकांक में मौजूद फ़ील्ड की सूची पर प्राप्त करने के लिए कोई सीधा रास्ता सोच सकते हैं, ...

3

वर्तमान (5.2) संस्करण में, आप सभी फ़ील्ड नाम पाने के लिए मानचित्रण एपीआई का उपयोग कर सकते हैं:

GET index_name/_mapping?pretty 

अधिक जानकारी के लिए official document को देखें।

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