2014-10-09 7 views
10

अगर मैं इंडेक्स के सभी टोकन प्राप्त करना चाहता हूं जो elasticsearch बनाता है (मैं rails elasticsearch gem का उपयोग कर रहा हूं), तो मैं ऐसा करने के लिए कैसे जाऊं?elasticsearch द्वारा बनाई गई उलटा इंडेक्स कैसे प्रिंट करें?

curl -XGET 'http://localhost:9200/development_test/_analyze?text=John Smith' 
+2

ल्यूसीन इंडेक्स देखने के लिए लोचदार खोज द्वारा प्रदान की गई कोई एपीआई नहीं है। हालांकि ल्यूक जैसे कुछ टूल हैं जो आपको लुसीन इंडेक्स देखने की अनुमति देते हैं। यहां एक [ब्लॉग] [1] है कि इसे लोचदार खोज के लिए सेट अप करने के बारे में शायद मदद मिल सकती है। [1]: http://rosssimpson.com/blog/2014/05/06/using-luke-with-elasticsearch/ – keety

+0

धन्यवाद, मैं ल्यूक को ऊपर उठाने और चलाने में कामयाब रहा हूं .. एक विचार जहां इंडेक्स लोचदार खोज लिनक्स पर बनाता है? मैंने /etc/init.d की जांच की और किसी भी .idx फ़ाइल को नहीं देखा। – Nona

+0

elasticsearch की कॉन्फ़िगरेशन में path.data फ़ील्ड में अनुक्रमणिका पथ प्रदान किया जाना चाहिए। सूचकांक /////इंडेक्स/ – keety

उत्तर

1

आप Term Vectors API साथ Scroll API गठजोड़ कर सकते हैं उल्टे सूचकांक में मामले की गणना करने में:

require "elastomer/client" 
require "set" 

client = Elastomer::Client.new({ :url => "http://localhost:9200" }) 
index = "someindex" 
type = "sometype" 
field = "somefield" 

terms = Set.new 

client.scan(nil, :index => index, :type => type).each_document do |document| 
    term_vectors = client.index(index).docs(type).termvector({ :fields => field, :id => document["_id"] })["term_vectors"] 
    if term_vectors.key?(field) 
    term_vectors[field]["terms"].keys.each do |term| 
     unless terms.include?(term) 
     terms << term 
     puts(term) 
     end 
    end 
    end 
end 

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

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