I have latitude and longitude separate fields without any wrapper(like location), how do I define "geo_point" data type

Here is my json.
"app_id": "5647",
"contacts": [
"first_name": "Sabir",
"last_name": "Iqbal"
"latitude": 44.669365,
"longitude": -73.44533

Here is my mapping.

"settings": {
"number_of_shards": 1,
"number_of_replicas": 1
"mappings": {
"myType": {
"properties": {
"app_id": { "type": "string" },
// want to define "geo_point" for latitude and longitude fields ???????

Please help me out to define geo_point. I am suing Elasticsearch 2.3.3

You can't.

You need to transform your documents before indexing them,

In 5.0, you will be able to use ingest feature to do that.

Thanks for your quick reply. I appreciate your time and help. Is there any other way to do that? My document is huge it has almost 30 fields. and in a single json file I have 1million data. its quite impossible to transform the document because transformer java class getting OutOfMemmoryError.

Are you saying that a single elasticsearch document contains 1 million data?
Or did you mean that you have a bulk file which contains 1 million of individual JSON docs?

BTW you can have a look at Logstash to parse and transform your source file to something else.

I have one json file size of 3.4GB with 1 million line separated document. And the format of the file does not support by Elasticsearch bulk load.

How are you going to send that to elasticsearch?