ters dizin terimleri numaralandırmak için:
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
Bu oldukça yavaş böyle yaparak şey sadece arama terimi için jeton belli bir set alır ve dizindeki her bir belge için bir _termvectors
HTTP isteğini gerçekleştirdiğinden ve israfı tüm terimleri RAM içinde tuttuğundan ve numaralandırma süresi boyunca bir kaydırma bağlamını açık tuttuğundan savurganlık. Bununla birlikte, bu Luke gibi bir başka araç gerektirmez ve terimler endeksten çıkarılabilir.
luclast indeksini görüntülemek için elasticsearch tarafından sağlanan bir api yoktur. Ancak, Luke gibi lümen indeksini görmenize izin veren bazı araçlar var. İşte bir [blog] [1], elasticsearch için nasıl ayarlanacağına dair muhtemelen yardımcı olabilir. [1]: http://rosssimpson.com/blog/2014/05/06/using-luke-with-elasticsearch/ – keety
Teşekkürler Luke'ı çalıştırmayı başardım .. indisleri elasticsearch nerede bir fikir Linux'ta yaratılan dosyalar? /etc/init.d adresini kontrol ettim ve herhangi bir .idx dosyası görmedim. Elasticsearch yapılandırmasında path.data alanında – Nona
dizin yolu sağlanmalıdır. indisler,/////indices/ –
keety