आप 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 अनुरोध करता है, इसमें रैम में सभी शर्तें होती हैं, और गणना की अवधि के लिए एक स्क्रॉल संदर्भ खुला रहता है। हालांकि, इसे ल्यूक जैसे किसी अन्य उपकरण की आवश्यकता नहीं है और शर्तों को इंडेक्स से बाहर किया जा सकता है।
स्रोत
2017-04-08 06:42:15
ल्यूसीन इंडेक्स देखने के लिए लोचदार खोज द्वारा प्रदान की गई कोई एपीआई नहीं है। हालांकि ल्यूक जैसे कुछ टूल हैं जो आपको लुसीन इंडेक्स देखने की अनुमति देते हैं। यहां एक [ब्लॉग] [1] है कि इसे लोचदार खोज के लिए सेट अप करने के बारे में शायद मदद मिल सकती है। [1]: http://rosssimpson.com/blog/2014/05/06/using-luke-with-elasticsearch/ – keety
धन्यवाद, मैं ल्यूक को ऊपर उठाने और चलाने में कामयाब रहा हूं .. एक विचार जहां इंडेक्स लोचदार खोज लिनक्स पर बनाता है? मैंने /etc/init.d की जांच की और किसी भी .idx फ़ाइल को नहीं देखा। – Nona
elasticsearch की कॉन्फ़िगरेशन में path.data फ़ील्ड में अनुक्रमणिका पथ प्रदान किया जाना चाहिए। सूचकांक/////इंडेक्स/ –
keety