2013-05-16 16 views
7

Chcę znaleźć pewne elementy w moim elastycznym wyszukiwaniu, które mają dany identyfikator i nie mogę wymyślić łatwy sposób to zrobić.wyszukiwanie elasticsearch dla elementów o określonym ID przykład

widzę http://www.elasticsearch.org/guide/reference/query-dsl/ids-query/ ale nie może dla życia mnie dowiedzieć się, jak zorganizować zapytanie do korzystania z niego, lub gdy zrobić zabawkę z es-wokół głowy lub zwijają widzę błędy takie jak:

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

itd. Czy ktoś może mi powiedzieć, jak to ustawić? Dzięki.

edytuj: Moja próba z tym błędem pochodziła z es-head, ale podobne błędy za pośrednictwem curl. Wierzę, że to, co próbowałem był jakiś wariant to:

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

można wkleić polecenie curl verbatim? Przykład, który łączysz, powinien działać, więc prawdopodobnie jest to kwestia, gdzie się zboczyłeś. :) –

+0

Dzięki za odpowiedź. Wysłałem to, czego używam. Próbowałem go przesuwać, jak w zapytaniu i robić podobne błędy ... mam nadzieję, że po prostu coś głupiego. – cdietschrun

Odpowiedz

17

ids to rodzaj zapytania, podobnie jak match lub match_all. Więc format powinien być następujący:

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

alternatywnie można to zrobić jako filtr, tak jak poniżej:

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

Dobry człowiek. Dziękuję bardzo. Uważam, że angielski jest trudny do zrozumienia w dokumentach ES, więc zrozumcie, że warunki mnie omijają. – cdietschrun

Powiązane problemy