Skip to content

Instantly share code, notes, and snippets.

@mauricioalarcon
Created June 23, 2011 20:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save mauricioalarcon/1043546 to your computer and use it in GitHub Desktop.
Save mauricioalarcon/1043546 to your computer and use it in GitHub Desktop.
geo_distance test for ES
# Inserting a pin
curl -X POST "http://localhost:9200/pins/pin/1" -d '{
"pin" : {
"location" : {
"lat" : 40.12,
"lon" : -71.34
},
"tag" : ["food", "family"],
"text" : "my favorite family restaurant"
}
}'
# Checking it's there
curl -X GET "http://localhost:9200/pins/_search?pretty=true"
{
"took" : 2,
"timed_out" : false,
"_shards" : {
"total" : 5,
"successful" : 5,
"failed" : 0
},
"hits" : {
"total" : 1,
"max_score" : 1.0,
"hits" : [ {
"_index" : "pins",
"_type" : "pin",
"_id" : "1",
"_score" : 1.0, "_source" : {
"pin" : {
"location" : {
"lat" : 40.12,
"lon" : -71.34
},
"tag" : ["food", "family"],
"text" : "my favorite family restaurant"
}
}
} ]
}
}
# Now let's search by geo_distance
curl -X GET "http://localhost:9200/pins/_search?pretty=true" -d '{
"filtered" : {
"query" : {
"match_all" : {}
},
"filter" : {
"geo_distance" : {
"distance" : "12km"
"pin.location" : {
"lat" : 40,
"lon" : -70
}
}
}
}
}'
{
"error" : "SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures {[mctAUEkyTlWTq6qUnsMbrQ][pins][0]: SearchParseException[[pins][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"filtered\" : {\n \"query\" : {\n \"match_all\" : {}\n },\n \"filter\" : {\n \"geo_distance\" : {\n \"distance\" : \"12km\"\n \"pin.location\" : {\n \"lat\" : 40,\n \"lon\" : -70\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][0]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][1]: SearchParseException[[pins][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"filtered\" : {\n \"query\" : {\n \"match_all\" : {}\n },\n \"filter\" : {\n \"geo_distance\" : {\n \"distance\" : \"12km\"\n \"pin.location\" : {\n \"lat\" : 40,\n \"lon\" : -70\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][1]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][2]: SearchParseException[[pins][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"filtered\" : {\n \"query\" : {\n \"match_all\" : {}\n },\n \"filter\" : {\n \"geo_distance\" : {\n \"distance\" : \"12km\"\n \"pin.location\" : {\n \"lat\" : 40,\n \"lon\" : -70\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][2]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][3]: SearchParseException[[pins][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"filtered\" : {\n \"query\" : {\n \"match_all\" : {}\n },\n \"filter\" : {\n \"geo_distance\" : {\n \"distance\" : \"12km\"\n \"pin.location\" : {\n \"lat\" : 40,\n \"lon\" : -70\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][3]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][4]: SearchParseException[[pins][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n \"filtered\" : {\n \"query\" : {\n \"match_all\" : {}\n },\n \"filter\" : {\n \"geo_distance\" : {\n \"distance\" : \"12km\"\n \"pin.location\" : {\n \"lat\" : 40,\n \"lon\" : -70\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][4]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }]",
"status" : 500
}
# Trying search by geo_bounding_box
curl -X GET "http://localhost:9200/pins/_search?pretty=true" -d '{
"filtered" : {
"query" : {
"field" : { "text" : "restaurant" }
},
"filter" : {
"geo_bounding_box" : {
"pin.location" : {
"top_left" : {
"lat" : 40.73,
"lon" : -74.1
},
"bottom_right" : {
"lat" : 40.717,
"lon" : -73.99
}
}
}
}
}
}'
{
"error" : "SearchPhaseExecutionException[Failed to execute phase [query], total failure; shardFailures {[mctAUEkyTlWTq6qUnsMbrQ][pins][0]: SearchParseException[[pins][0]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n\"filtered\" : {\n \"query\" : {\n \"field\" : { \"text\" : \"restaurant\" }\n },\n \"filter\" : {\n \"geo_bounding_box\" : {\n \"pin.location\" : {\n \"top_left\" : {\n \"lat\" : 40.73,\n \"lon\" : -74.1\n },\n \"bottom_right\" : {\n \"lat\" : 40.717,\n \"lon\" : -73.99\n }\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][0]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][1]: SearchParseException[[pins][1]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n\"filtered\" : {\n \"query\" : {\n \"field\" : { \"text\" : \"restaurant\" }\n },\n \"filter\" : {\n \"geo_bounding_box\" : {\n \"pin.location\" : {\n \"top_left\" : {\n \"lat\" : 40.73,\n \"lon\" : -74.1\n },\n \"bottom_right\" : {\n \"lat\" : 40.717,\n \"lon\" : -73.99\n }\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][1]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][2]: SearchParseException[[pins][2]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n\"filtered\" : {\n \"query\" : {\n \"field\" : { \"text\" : \"restaurant\" }\n },\n \"filter\" : {\n \"geo_bounding_box\" : {\n \"pin.location\" : {\n \"top_left\" : {\n \"lat\" : 40.73,\n \"lon\" : -74.1\n },\n \"bottom_right\" : {\n \"lat\" : 40.717,\n \"lon\" : -73.99\n }\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][2]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][3]: SearchParseException[[pins][3]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n\"filtered\" : {\n \"query\" : {\n \"field\" : { \"text\" : \"restaurant\" }\n },\n \"filter\" : {\n \"geo_bounding_box\" : {\n \"pin.location\" : {\n \"top_left\" : {\n \"lat\" : 40.73,\n \"lon\" : -74.1\n },\n \"bottom_right\" : {\n \"lat\" : 40.717,\n \"lon\" : -73.99\n }\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][3]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }{[mctAUEkyTlWTq6qUnsMbrQ][pins][4]: SearchParseException[[pins][4]: from[-1],size[-1]: Parse Failure [Failed to parse source [{\n\"filtered\" : {\n \"query\" : {\n \"field\" : { \"text\" : \"restaurant\" }\n },\n \"filter\" : {\n \"geo_bounding_box\" : {\n \"pin.location\" : {\n \"top_left\" : {\n \"lat\" : 40.73,\n \"lon\" : -74.1\n },\n \"bottom_right\" : {\n \"lat\" : 40.717,\n \"lon\" : -73.99\n }\n }\n }\n }\n }\n}]]]; nested: SearchParseException[[pins][4]: from[-1],size[-1]: Parse Failure [No parser for element [filtered]]]; }]",
"status" : 500
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment