我的课
package be.smartask.data;
import be.smartask.core.api.Language;
import org.elasticsearch.common.geo.GeoPoint;
import java.util.Date;
import java.util.Map;
/**
* @author Glenn Van Schil
* Created on 26/01/2016
*/
public class CityValue extends Value {
private int radius;
private Map<Language, String> translations;
private GeoPoint geoPoint;
private Suggest suggest;
public CityValue() {
}
public CityValue(Date createdOn, String id, Date lastUpdatedOn, String fieldId, String projectId, String userId, GeoPoint geoPoint, int radius, Suggest suggest, Map<Language, String> translations) {
super(createdOn, id, lastUpdatedOn, fieldId, projectId, userId);
this.geoPoint = geoPoint;
this.radius = radius;
this.suggest = suggest;
this.translations = translations;
}
public GeoPoint getGeoPoint() {
return geoPoint;
}
public void setGeoPoint(GeoPoint geoPoint) {
this.geoPoint = geoPoint;
}
public void setGeoPoint(double lat, double lon) {
this.geoPoint = new GeoPoint(lat, lon);
}
public int getRadius() {
return radius;
}
public void setRadius(int radius) {
this.radius = radius;
}
public Suggest getSuggest() {
return suggest;
}
public void setSuggest(Suggest suggest) {
this.suggest = suggest;
}
public Map<Language, String> getTranslations() {
return translations;
}
public void setTranslations(Map<Language, String> translations) {
this.translations = translations;
}
}
我的映射
{
"cityvalue": {
"dynamic_templates": [{
"notanalyzed": {
"match": "*",
"match_mapping_type": "string",
"mapping": {
"type": "string",
"index": "not_analyzed"
}
}
}],
"properties": {
"createdOn": {
"type": "date",
"format": "date_hour_minute_second"
},
"lastUpdatedOn": {
"type": "date",
"format": "date_hour_minute_second"
},
"suggest": {
"type": "completion",
"preserve_separators": false,
"index_analyzer": "simple",
"search_analyzer": "simple",
"payloads": false
},
"geoPoint": {
"type": "geo_point"
}
}
}
}
当我尝试索引此对象时,出现以下错误
org.elasticsearch.ElasticsearchParseException:字段必须是 lat/lon 或 geohash
为什么会引发此错误,我该如何解决?
我一直使用 Spring-data 与 Elastic 进行交互,它也有一个 GeoPoint 对象,它在相同的映射下工作得很好,但是因为我删除了 Spring-data,我不得不从 org.springframework.data.elasticsearch.core.geo 切换。 GeoPoint到org.elasticsearch.common.geo.GeoPoint