2016-05-10 12 views
0

Ich habe einen Index namens "test" mit dem Typ "Test" und es enthält ein Feld namens "Pfad" des Typs geo_shape. Das Mapping für das "Pfad" -Feld ist wie folgt.Parsen Ausnahme für MultiLineString Feld in elasticsearch

"path" : { "type" : "geo_shape", "tree" : "quadtree", "precision" : "1m" } 

Der Index wird erstellt und die Daten werden in alle Felder außer "Pfad" indiziert. Als ich versuchte, eine Zeile mit dem Wert "path" zu aktualisieren, wurde eine Ausnahme ausgelöst. Nachfolgend finden Sie den Code und die Ausnahme, die ich versucht habe.

-Code die Zeile einzufügen ::

curl -XPOST 'http://192.168.22.10:9200/test/Test/road4/_update' -d '{ 
"doc" : { 
    "path" : {"type" : "multilinestring", "coordinates" : [[-123.04884393678275, 49.23705680269003], [-123.04879834103596, 49.23159242031221], [-123.04880573577739, 49.23116567921752], [-123.04668158540538, 49.290719445433304], [-123.0466780844126, 49.291215069306], [-123.04670614567429, 49.27962543136022], [-123.04670642699772, 49.279082952438834], [-123.04936250390882, 49.27579927483156], [-123.04937093312175, 49.27538530710557], [-123.05055562575079, 49.21895094399069], [-123.05055807601889, 49.21846682583291], [-123.04670649653067, 49.27867636307187], [-123.04670701928822, 49.278269503692414], [-123.04880573577739, 49.23116567921752], [-123.0488097592407, 49.23076600972447], [-123.04962419053852, 49.248828838567086], [-123.04963156425279, 49.24793363261724], [-123.05047029168206, 49.221885631113466], [-123.05051215363366, 49.22107152666596], [-123.04963893290395, 49.24545136109131], [-123.04964184010389, 49.244621898312424]]}}}' 

Ausnahme bekam ::

{"error":"MapperParsingException[failed to parse [linePath]]; nested: NullPointerException; ","status":400} 

Es wäre eine große Hilfe sein, wenn jemand in diese aussehen kann und helfen ..

Vielen Dank im Voraus, SantoshM

Antwort

0

Sie benötigen drei Arrays für multilinestring, wie diese

curl -XPOST 'http://192.168.22.10:9200/test/Test/road4/_update' -d '{ 
"doc" : { 
    "path" : {"type" : "multilinestring", "coordinates" : [[[-123.04884393678275, 49.23705680269003], [-123.04879834103596, 49.23159242031221], [-123.04880573577739, 49.23116567921752], [-123.04668158540538, 49.290719445433304], [-123.0466780844126, 49.291215069306], [-123.04670614567429, 49.27962543136022], [-123.04670642699772, 49.279082952438834], [-123.04936250390882, 49.27579927483156], [-123.04937093312175, 49.27538530710557], [-123.05055562575079, 49.21895094399069], [-123.05055807601889, 49.21846682583291], [-123.04670649653067, 49.27867636307187], [-123.04670701928822, 49.278269503692414], [-123.04880573577739, 49.23116567921752], [-123.0488097592407, 49.23076600972447], [-123.04962419053852, 49.248828838567086], [-123.04963156425279, 49.24793363261724], [-123.05047029168206, 49.221885631113466], [-123.05051215363366, 49.22107152666596], [-123.04963893290395, 49.24545136109131], [-123.04964184010389, 49.244621898312424]]]}}}' 
0

Ja, habe den Fehler in meinem Code.

Mein Format für mehrzeilige Eingabe ist falsch. Es sollte wie folgt sein.

{ 
    "location" : { 
    "type" : "multilinestring", 
    "coordinates" : [ 
     [ [102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0] ], 
     [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0] ], 
     [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8] ] 
    ] 
    } 
} 

Für den obigen Code, sollte ich die Art von „Mehrlinien“ auf „Linienzug“ ändern oder sollte ich meine Eingabe oben Format ändern.

Danke.

Verwandte Themen