C#Nest:如何索引geo-poinst数组

时间:2015-06-27 11:13:58

标签: c# arrays elasticsearch nest

你好我是弹性和巢的新手。 我使用了一个如何索引地理位置定位的例子,因为我可以看到kibana地图中的地理点可视化。

这是我的数据结构:

speed_y

我的索引代码如下:

public class LocationArray
{
    public string ArrayNameArtical { get; set; }
    [ElasticProperty(Type = FieldType.GeoPoint)]
    public IEnumerable<Location> Locations { get; set; }
}
public class Location
{
    public string Name { get; set; }

    [ElasticProperty(Type = FieldType.GeoPoint)]
    public Coordinate Coordinate { get; set; }
}


public class Coordinate
{
    public double Lat { get; set; }
    public double Lon { get; set; }
}

现在我想索引LocationArray类,似乎需要更改我的映射,但我知道如何做到这一点。但是我可以看到kibana中的数组数据但是无法查看它地图。 对地理点索引数组有什么问题吗?

1 个答案:

答案 0 :(得分:4)

好的,所以在挖掘几个小时后找到了映射这个地理点数组的方法.. 希望有一天它会帮助别人:)

client.Map<LocationArray>(m => m
                        .MapFromAttributes().Properties(p=>p
                            .NestedObject<Location>(no => no
                            .Name(pl => pl.Locations.First())
                            .Dynamic()
                            .Enabled()
                            .IncludeInAll()
                            .IncludeInParent()
                            .IncludeInRoot()
                            .MapFromAttributes()
                            .Path("full")
                            .Properties(pprops => pprops
                                .GeoPoint(ps => ps
                                    .Name(pg => pg.Coordinate)
                                    .IndexGeoHash().IndexLatLon()
                                )
                            )
                        ))
                    );