2016-07-31 12 views
0

Ich versuche, Dokumente zu suchen, die Polygone schneiden lat/lon schneiden. Hier ist meine MappingSuchen von Polygonen in geo_shape Abfrage elasticsearch

{ 
    index:"domains", 
    type:"land", 
    body:{ 
     properties:{ 
       landId:{ 
        type:"integer" 
       }, 
       name:{ 
        type:"string" 
       }, 
       location:{ 
        type:"geo_shape" 
       } 
     } 
    } 
} 

Hier ist, wie ich indiziert die Dokumente

{ 
    landId:1, 
    name:"My Test location ", 
    location:{ 
     type:"polygon", 
     coordinates: [[ 
      [-90.4321575,41.4854342], 
      [-90.4318142,41.469615], 
      [-90.4138756,41.4697436], 
      [-90.4139614,41.4855628], 
      [-90.4321575,41.4854342] 
     ]] 
    } 

}

Hier ist meine Abfrage

var query = { 
    "index":"domains", 
    "type":"lands", 
    "match_all":{}, 
    "geo_shape": { 
    "location": { 
    "relation": "intersects", 
    "shape": { 
     "type": "point", 
     "coordinates":[-90.4244328,41.4794542] 
     } 
     } 
    } 
} 

return esClient.search(query).then(function(resp){ 
    console.log("**** GOT RESPONSE from Search ****") 
    console.log(resp.hits); 
    return resp.hits.hits[0]._source; 

}),function (err) { 
    console.trace(err.message); 
} 
    ; 

Wenn ich Index/Typ in die angeben Abfrage bekomme ich kein Ergebnis und wenn ich nicht angeben, dann bekomme ich alle Dokumente unabhängig von dem Filter, den ich hinzugefügt habe.

Antwort

1

In Ihrer Anfrage Sie haben die Art falsch, es land und nicht lands nach Ihrem Mapping sein sollte:

var query = { 
    "index":"domains", 
    "type":"land", 
    "body": { 
    "query":{ 
     "geo_shape": { 
     "location": { 
      "relation": "intersects", 
      "shape": { 
      "type": "point", 
      "coordinates":[-90.4244328,41.4794542] 
      } 
     } 
     } 
    } 
    } 
}; 
+0

Dank Val, habe ich versucht, dass aber noch keine Ergebnisse. Auch wenn ich keinen Index oder Typ angegeben habe und nur die Abfrage anbot, bekomme ich alles, was mir auch etwas verwirrend ist. – user3248984

+0

Ich habe die Abfrage geändert, die ein paar Tippfehler enthielt, bitte versuchen Sie es erneut. – Val

+0

Danke, es funktioniert ... schätzen Sie Ihre Hilfe, so dass das fehlende Stück die Abfrage in "body" Tag? – user3248984