3

У меня есть проблема с отображением «Geo Point» в elasticsearch с использованием NEST C# Client.ElasticSearch 2.x Географическое сопоставление GeoPoint с NEST C#

Вот мое определение класса:

[GeoPoint(Name = "coordinates", LatLon = true)] 
    public Coordinates Coordinates { get; set; } 

public class Coordinates 
{ 
    [Number(NumberType.Double, Name = "lat")] 
    public double Lat { get; set; } 

    [Number(NumberType.Double, Name = "lng")] 
    public double Lng { get; set; } 
} 

Мои картографирования свойства по созданию индекса:

.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" 
        } 
        } 
       }, 
... 

И когда я пытаюсь его запросить (используя SENSE), я получаю следующую ошибку:

"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 
      } 

Так что, по моему мнению, проблема связана с моим отображением, но все сильно изменилось в обновлении 2.x (по сравнению с 1.x), что я не знаю, как правильно отображать гео точку. Есть идеи ?

+0

Вы тестируете это против ES 2.x? – Rob

+0

@ Rob yeah ... Я упомянул об этом в своем втором последнем предложении, но Youre right - я должен сделать его более явным. Подождите - он говорит 2.x в заголовке :) –

+0

Ой, простите, извините за это:) – Rob

ответ

1

решена - обновлен NEST библиотека до последних версий -

А также переименован моего класса член Координаты LNG в Lon:

[Number(NumberType.Double, Name = "lon")] 
public double Lon { get; set; } 

Я думаю, что # декларация C не имеет значения, его просто аннотация тот важна.

спасибо

Смежные вопросы