4

NEST C#クライアントを使用してelasticsearchで「Geo Point」をマッピングする際に問題があります。

これが私のクラス定義です:

 [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 と比較して) すべてが大幅に変更されたため、ジオポイントを適切にマッピングする方法がわかりません。何か案は ?

4

1 に答える 1