Geo_point field not mapped correctly with aliases

(deejay) #1

Hi. I am failing to get a geo_point field mapping to work correctly with aliases in java. I have a template that defines my mappings as below:

    "template_1" : {
        "template" : "examples",
        "aliases" : {
    		"{index}" : {}
		"mappings": {
					"location" : {
						"type" : "geo_point"

When I do not use aliases, the location field is mapped correctly as a geo_point and I can successfully perform queries such as:

.addSort(SortBuilders.geoDistanceSort("location").point(latitude, longitude).order(SortOrder.ASC)) 

However, when I use aliases I get an exception containing the below:

ElasticsearchIllegalArgumentException[failed to find mapper for [location] for geo distance based sort]

When I look at the elasticsearch logs I see that the mapping using the alias is:

successfully updated master with mapping update: index [myalias], indexUUID [crgz4gkNTtapf5IgTXaRDy], type [example] and source [{"example":{"properties":{"location":{"properties":{"lat":{"type":"double"},"lon":{"type":"double"}}}}}}]

Which would explain why I am getting the exception.

I am adding the alias as below:

client.admin().indices().prepareAliases().addAlias("examples", "myalias");
.field("lat", latitude)
.field("lon", longitude);
bulkRequest.add(client.prepareIndex("myalias", "example", id).setSource(builder));

Could someone please assist? Thanks.

(deejay) #2

Does anyone have geo_point working with aliases using the Java API? Still struggling :weary:

(system) #3