2017-06-05 5 views
0

Ich habe folgenden Datenindex in Elasticsearch mit der folgenden Syntax:Abfragen einen verschachtelten Array in Elasticsearch

PUT /try1 
{ 
"mappings" : { 
    "product" : { 
    "properties" : { 
    "name": { "type" : "text" }, 
    "categories": { 
     "type": "nested", 
     "properties": { 
     "range":{"type":"text"} 
     } 
    } 
    } 
    } 
} 
} 

Der Bereichstyp ein Array von Worten hat: [ „hoch“, „mittel“, „niedrig“ ] Ich muss auf das Bereichselement innerhalb der verschachtelten Kategorie zugreifen. Ich habe versucht, die folgende Syntax verwenden:

GET /try1/product/_search 
{ 
    "query": { 
     "nested" : { 
      "path" : "categories", 
      "query" : { 
       "bool" : { 
        "must" : [ 
        { "match" : {"categories.range": "low"} } 
        ] 
       } 
      } 
     } 
    } 

} 

aber ich erhalte eine Fehlermeldung mit der Meldung: „Grund“: „“ "failed Abfrage erstellen: ...

Kann jemand bitte bieten ein Lösung für dieses

+0

Wie führen Sie Ihre Abfrage? Mit einer Programmiersprache oder ...? Ihre Anfrage scheint korrekt zu sein. Ich empfehle Ihnen, die Abfrage mit 'chrome sense extension' auszuführen und den vollständigen Fehler anzugeben. –

Antwort

0

@KGB können Sie versuchen, Ihre Frage etwas anders wie diese zu machen:

{ 
    "query": { 
     "bool": { 
      "must": [ 
       { 
        "match": { 
         "categories.range": "low" 
        } 
       } 
      ] 
     } 
    } 
} 
0
{ 
    "query": { 
     "nested" : { 
      "path" : "categories", 
      "query" : { 
       "bool" : { 
        "must" : [ 
        { categories.range": "low"} 
        ] 
       } 
      } 
     } 
    } 
} 

Das hat perfekt funktioniert

Verwandte Themen