2017-03-20 6 views
0

Angenommen, ich habe Dokumente wie folgt aus:Abfrage mindestens ein Element von Array Elasticsearch

{ 
    "name":"Foo", 
    "interests":{ 
     "movies":[ 
     1, 
     2, 
     3 
     ], 
     "music":[ 
     8, 
     9, 
     10 
     ] 
    } 
} 

Wie kann ich für Dokumente abfragen, die mindestens eine der Array-Elemente gegeben eine ganze Zahl überein?

Beispiel: Wie alle Dokumente abgefragt werden, die interests.movie1 hat?

Alle Abfrage-Beispiele, die ich ausprobiert habe, wurden zu einer exklusiven Übereinstimmung.

Antwort

0

Ziemlich viel, wie Sie beschrieben:

GET movies/_search 
{ 
    "query": { 
    "match": { 
     "interests.movies": "1" 
    } 
    } 
} 
+0

Dies ist der Rückkehr keine Ergebnisse. Schätze, es ist eine genaue Übereinstimmung, nicht wahr? – Luiz

+0

Nun, es sucht nach einem Gegenstand 1 in Filmen. Es könnte also davon abhängen, wie Sie den Index selbst erstellt haben. Ich habe mit {"name": "Foo", "interests": {"movies": [1, 2, 3], "music": [8, 9, 10]}} erstellt. Und es findet Film. – Shawnas

Verwandte Themen