2013-05-16 11 views
7

Belirli bir kimliği olan elastik aramamdaki belirli öğeleri bulmak istiyorum ve bunu yapmanın kolay bir yolunu bulamıyorum.elasticsearch, belirtilen ID örnekli öğeleri ara

Ben http://www.elasticsearch.org/guide/reference/query-dsl/ids-query/ bkz ama benim yaşam için kullanmak için bir sorgu yapısı, yoksa es-kafalı oyuncak etrafında yapmak ya kıvrılıp zaman gibi hatalarla anlamaya olamaz:

Parse Failure [Failed to parse source [{"query":{"match_all":{}},"ids 
{"values""1","4","100"]}}]]]; nested: SearchParseException[[dailyaggregates][4]: 
query[ConstantScore(NotDeleted(*:*))],from[-1],size[-1]: Parse Failure [No parser for 
element [ids]]]; }] 

vb. Bunu nasıl ayarlayacağımı söyleyen var mı? Teşekkürler.

düzenleme: Bu hatayla ilgili girişimim, es-başlığından ancak benzer hatalardan kıvrılma ile oldu.

{ 
    "query": { 
    "match_all": {} 
    }, 
    "ids": { 
    "values": [ 
    "100" 
    ] 
    } 
} 
+0

Eğer bukle komut kelimesi kelimesine yapıştırmak Can:

{"query":{ "ids":{ "values": [ 100 ] } } } 

Bir filtre olarak bunu alternatif olarak, bu nedenle böyle? Bağladığınız örnek çalışmalıdır, bu yüzden muhtemelen nereye saptığınız sorusu. :) –

+0

Cevabınız için teşekkürler. Ne kullandığımı gönderdim. Sorgu içindeki gibi hareket etmeyi denedim ve benzer hatalar aldım ... umarım sadece aptalca bir şey. – cdietschrun

cevap

17

ids sadece match veya match_all gibi sorgunun türüdür: Ne denedim bu bir varyasyonunu oldu inanıyoruz. Yani biçimi olmalıdır:

{"filter":{ "query": {"ids":{ "values": [ 100 ] } } } } 
+0

İyi adam. Çok teşekkürler. ES dokümanlarında İngilizce'yi anlamak zor, bu yüzden şartların beni terk ettiğini anlayın. – cdietschrun