У меня есть следующие классы
public class MyLayer
{
public List<MyLocation> Locations { get; set; }
}
public class MyLocation
{
public string Name { get; set; }
public MyCoordinate Coordinate { get; set; }
}
public class MyCoordinate
{
public double Lat { get; set; }
public double Lon { get; set; }
}
И этот код для индексации объектов
var node = new Uri("http://localhost:9200");
string indexName = "geopoint-tests2";
var settings = new ConnectionSettings(
node,
defaultIndex: "geopoint-tests2"
);
var client = new ElasticClient(settings);
var rootNodeInfo = client.RootNodeInfo();
if (!rootNodeInfo.ConnectionStatus.Success)
throw new ApplicationException("Could not connect to Elasticsearch!",
rootNodeInfo.ConnectionStatus.OriginalException);
client.CreateIndex(indexName, s => s
.AddMapping<MyLocation>(f => f
.MapFromAttributes()
.Properties(p => p
.GeoPoint(g => g.Name(n => n.Coordinate).IndexLatLon()))));
var loc = new MyLayer()
{
Locations = new List<MyLocation>()
};
loc.Locations.AddRange(new []
{
createLocation("Amsterdam", 52.3740300, 4.8896900),
createLocation("Rotterdam", 51.9225000, 4.4791700),
createLocation("Utrecht", 52.0908300, 5.1222200),
createLocation("Den Haag", 52.0908300, 5.1222200)
});
client.Index(loc);
Как вы можете, я хочу проиндексировать массив местоположений, но по какой-то причине я не вижу географический индекс на карте плитки kibana, когда я проиндексировал плоский тип MyLocation, я увидел географический индекс с визуализацией карты.
В kibana 4.0 я вижу, что Location не индексируется, но не могу понять, как его индексировать...
Проблема в коде? Индекс в кибане? Мой подход к индексации массива местоположений?
Спасибо за ваше время и помощь :)