1: you can not « update » an existing field and transform it from double to 
geo_points
2: you want coordinates to be your geo_point, not latitude and longitude to be 
each of it a geo_point.
3: your put mapping request is incorrect. Have a look at 
http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
 
<http://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html>
The type should be part of your JSON content.

HTH

-- 
David Pilato - Developer | Evangelist 
elastic.co
@dadoonet <https://twitter.com/dadoonet> | @elasticsearchfr 
<https://twitter.com/elasticsearchfr> | @scrutmydocs 
<https://twitter.com/scrutmydocs>





> Le 24 mars 2015 à 10:39, nidhi chawhan <nidhi.chaw...@gmail.com> a écrit :
> 
> Hi Team,
> 
> I wanted to update the datatype of latitude and longitude fields from double 
> to geo_points .
> 
> Index name  :- visit.hippo_en
> Type :- visit:PlaceDocument
> 
> PUT /visit.hippo_en/visit:PlaceDocument/_mapping
> { 
>     "location": {
>       "properties" :{
>         "coordinates": {
>             "properties":{
>               "coordinates": {
>                  "properties":{ 
>                     "latitude": {
>                         "type": "geo_point"
>                        
>                      },
>                      "longitude": {
>                         "type": "geo_point"
>                        
>                      }
>                  }
>               }
>                  
>           }
>         }
>       }
>    }
> }
> 
> then getting below error 
> 
> 
> {
>    "error": "MapperParsingException[Root type mapping not empty after 
> parsing! Remaining fields:   [location : 
> {properties={coordinates={properties={coordinates={properties={latitude={type=geo_point},
>  longitude={type=geo_point}}}}}}}]]",
>    "status": 400
> }
> 
> when trying to update through java API
> below is the code
> 
> CreateIndex createIndex = new CreateIndex.Builder(visitHippoIndexName + 
> UNDERSCORE + lang).build();
>                       jestClient.execute(createIndex);
> 
>                       String geoPointMapping = "\n" +
>                                       "    \"location\": {\n" +
>                                       "      \"properties\" :{\n" +
>                                       "        \"coordinates\": {\n" +
>                                       "            \"properties\":{\n" +
>                                       "              \"coordinates\": {\n" +
>                                       "                 \"properties\":{ \n" +
>                                       "                    \"latitude\": {\n" 
> +
>                                       "                        \"type\": 
> \"geo_point\"\n" +
>                                       "                       \n" +
>                                       "                     },\n" +
>                                       "                     \"longitude\": 
> {\n" +
>                                       "                        \"type\": 
> \"geo_point\"\n" +
>                                       "                       \n" +
>                                       "                     }\n" +
>                                       "                 }\n" +
>                                       "              }\n" +
>                                       "                 \n" +
>                                       "          }\n" +
>                                       "        }\n" +
>                                       "      }\n" +
>                                       "   }";
> 
>                       if(nodeType.equals("visit:PlaceDocument")){
>                               PutMapping keyMapping = new 
> PutMapping.Builder(visitHippoIndexName + UNDERSCORE + lang, nodeType, 
> geoPointMapping).build();
>                               jestClient.execute(keyMapping);
>                       }
> 
> 
>                       Index index = new 
> Index.Builder(source).index(visitHippoIndexName + UNDERSCORE + 
> lang).type(nodeType).id(handleNode.getIdentifier()).build();
>                       jestClient.execute(index);
> 
> It gives me below exception
> 
> 2015-03-24 10:27:13,787][DEBUG][action.admin.indices.mapping.put] [Carnivore] 
> failed to put mappings on indices [[visit.hi
> po_en]], type [visit:PlaceDocument]
> rg.elasticsearch.index.mapper.MapperParsingException: malformed mapping no 
> root object found
>        at 
> org.elasticsearch.index.mapper.DocumentMapperParser.extractMapping(DocumentMapperParser.java:338)
>        at 
> org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:183)
>        at 
> org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:444)
>        at 
> org.elasticsearch.cluster.metadata.MetaDataMappingService$4.execute(MetaDataMappingService.java:505)
>        at 
> org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:329)
>        at 
> org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(Prio
> itizedEsThreadPoolExecutor.java:153)
>        at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>        at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>        at java.lang.Thread.run(Thread.java:745)
> 
> i am giving the root object which is location in this case.
> But still error.
> 
> Please advise how to update the double object to geopoints?
> 
> 
> Thanks,
> Nidhi
> 
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "elasticsearch" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to elasticsearch+unsubscr...@googlegroups.com 
> <mailto:elasticsearch+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/elasticsearch/776927e3-e551-4269-bf17-962134a4b17a%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/elasticsearch/776927e3-e551-4269-bf17-962134a4b17a%40googlegroups.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"elasticsearch" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elasticsearch+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elasticsearch/6142BB21-A45A-4CF1-88DA-0F55B21E3D70%40pilato.fr.
For more options, visit https://groups.google.com/d/optout.

Reply via email to