无论如何,对于Spatial Search ElasticSearch的映射类型是这样的结构:
"coordinates" : {
"type" : "Point",
"coordinates" : [
100.41404641,
5.37384675
]
},
我想知道使用它来自MongoDB的geo-point类型,而不将它们分成lat和long字段,如现有的教程和示例。
此结构是Twitter API默认流的结构,因此我可以将其保存为“location”:{“lat”:100.41,“long”:5.34}到MongoDB中。但在向我的数据库添加额外字段或更改内容之前,我想确保在ElasticSearch中无法使用此结构进行空间搜索。
由于
答案 0 :(得分:0)
根据ElasticSearch documents,可以在映射中将lat和long数组作为地理点类型。
映射:
PUT my_index
{
"mappings": {
"my_type": {
"properties": {
"location": {
"type": "geo_point"
}
}
}
}
}
格式在[lon,lat]中,注意,这里是lon / lat的顺序,以符合GeoJSON。
PUT my_index/my_type/4
{
"text": "Geo-point as an array",
"location": [ -71.34, 41.12 ]
}
Geo-point数据类型的其他示例: