Yes it is.
"geoip": {"type": "geo_point"}
This can't work. As the datastructure you are generating is probably like:
"geoip" => {
"timezone" => "America/New_York",
"ip" => "73.35.67.125",
"latitude" => 29.7596,
"continent_code" => "NA",
"city_name" => "St. Augustine",
"country_code2" => "US",
"country_name" => "United States",
"dma_code" => 561,
"country_code3" => "US",
"region_name" => "Florida",
"location" => [
[0] -81.3029,
[1] 29.7596
],
"postal_code" => "32086",
"longitude" => -81.3029,
"region_code" => "FL"
},
As I said earlier, geoip.location should be the geo_point type field.