Я использую клиентскую библиотеку NEST для Elasticearch для создания индекса для определенного типа.Создать индекс с отображением свойств геошапы
Тип содержит три свойства string
плюс один для хранения типа geo_shape
(для использования с формой envelope
).
Дело в том, сгенерированный запросе не удается разобрать в ES:
{
"error": "MapperParsingException[mapping [layer]]; nested: MapperParsingException[No handler for type [point] declared on field [boundingBox]]; ",
"status": 400
}
Запрос устроится от NEST, который произвел это сообщение об ошибке:
POST /metadata
{
"settings": {
"index": {
"number_of_shards": 1,
"number_of_replicas": 0
}
},
"mappings": {
"layer": {
"_all": {
"enabled": false
},
"properties": {
"namespace": {
"type": "string"
},
"name": {
"type": "string"
},
"abstract": {
"type": "string"
},
"boundingBox": {
"type": "point",
"tree": "geohash",
"tree_levels": 2,
"distance_error_pct": 0.025
}
}
}
}
}
Я обнаружил, что единственный ведение этого запроса от успеха - это объявление type
для имущества boundingBox
, которое должно иметь значение geo_shape
, а не point
.
Здесь код # C используется для выполнения вызова:
ElasticClient client = new ElasticClient(settings);
IIndicesOperationResponse response = client.CreateIndex(c => c
.Index("metadata")
.NumberOfShards(1)
.NumberOfReplicas(0)
.AddMapping<ESLayer>(m => m
.Type("layer")
.AllField(a => a.Enabled(false))
.Properties(p => p
.String(x => x.Name(n => n.Namespace))
.String(x => x.Name(n => n.Name))
.String(x => x.Name(n => n.Abstract))
.GeoShape(x => x
.Name(n => n.BoundingBox)
.Tree(GeoTree.Geohash)
.TreeLevels(2)
.DistanceErrorPercentage(0.025)))));
И ESLayer
класс:
private class ESLayer
{
public string Namespace { get; set; }
public string Name { get; set; }
public string Abstract { get; set; }
public EnvelopeGeoShape BoundingBox { get; set; }
}
Обратите внимание, что я использую EnvelopeGeoShape
класс, который поставляется с NEST для представления ограничивающего .
Elasticsearch версия: 1.3.1
версия НЕСТ: 1.0.2
Любой ключ на то, что я мог бы быть не хватает?
Спасибо @Greg, хорошо это слышать! Я перейду к следующей версии, как только она будет выпущена. Тем временем, я хотел бы протестировать ночную сборку, но, похоже, сейчас у меня на ногах. Любой другой источник для пакета? – Chopin
У меня, кажется, все нормально работает. Единственный другой вариант - клонировать репозиторий GitHub и компилировать решение. –
Я попытался скомпилировать источник, и он сработал. Также попытался получить доступ к моему сегодня, и теперь он работает для меня. Ура! – Chopin