我在使用NEST C#Client在elasticsearch中映射“Geo Point”时遇到问题。
这是我的班级定义:
.Mappings(map => map
.Map<Crime>(m => m.AutoMap()
.TimestampField(ts => ts.Enabled(true).Path("timeStamp"))
.Properties(pro => pro
.GeoPoint(geo => geo
.Name(n => n.Coordinates)
.LatLon(true)
))))
我在索引创建时的映射属性:
...
"coordinates": {
"properties": {
"lat": {
"type": "double"
},
"lng": {
"type": "double"
}
}
},
...
一旦某些文档被编入索引,我的映射看起来并不正确....
"reason": {
"type": "query_parsing_exception",
"reason": "failed to parse [geo_bbox] query. could not find [geo_point] field [coordinates]",
"index": "someindexname",
"line": 16,
"col": 9
}
当我尝试查询它(使用SENSE)时,我收到以下错误:
{{1}}
所以在我看来,问题在于我的映射,但是在2.x更新(与1.x相比)中一切都发生了巨大的变化,我不知道如何正确映射地理点。任何想法?
答案 0 :(得分:1)
已解决 - 将NEST库更新到最新版本 -
并将我的Coordinates类成员Lng重命名为Lon:
[Number(NumberType.Double, Name = "lon")]
public double Lon { get; set; }
我认为C#声明并不重要,只是注释很重要。
由于