2013-05-16 1 views
7

Voglio trovare determinati elementi nella mia ricerca elastica che hanno un determinato ID e non riesco a capire un modo semplice per farlo.ricerca elasticsearch per elementi con ID ID specificato

vedo http://www.elasticsearch.org/guide/reference/query-dsl/ids-query/ ma non posso per la vita di me capire come strutturare una query per usarlo, o quando faccio giocattolo in giro con es-testa o curl vedo errori come:

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]]]; }] 

ecc. Qualcuno può dirmi come configurarlo? Grazie.

modifica: Il mio tentativo con quell'errore proveniva da es-head ma errori simili dovuti al ricciolo. Credo che quello che ho provato è stato qualche variante di questo:

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

Potete incollare il vostro comando ricciolo testualmente? L'esempio che hai collegato dovrebbe funzionare, quindi probabilmente è una questione di dove ti sei allontanato. :) –

+0

Grazie per la risposta. Pubblicato quello che sto usando. Ho provato a spostarlo, come all'interno della query e ottenere errori simili ... speriamo solo qualcosa di stupido. – cdietschrun

risposta

17

ids è un tipo di query, proprio come match o match_all. Così il formato deve essere:

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

In alternativa è possibile farlo come un filtro, in questo modo:

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

Buon uomo. Grazie mille. Trovo che l'inglese sia difficile da capire nei documenti ES, quindi comprendi che i termini mi hanno eluso. – cdietschrun