将 geo_shape 读取为 GeoJSON 文本
Reading geo_shape as GeoJSON text
我目前有一个通过 NEST 检索对象的弹性搜索查询
public class ElasticSearchObject
{
[PropertyName("code")]
public string Code { get; set; }
[PropertyName("geometria")]
public MultiPolygonGeoShape Geometria { get; set; }
}
查询现在正在运行,但我需要更改 "Geometria" 属性 的类型(映射到 elasticseach 存储文档中的 geo_shape 字段)。现在它必须是一个包含 GeoJSON 字符串的字符串。我可以 post 处理 MultiPolygonGeoShape 属性 并从其内容构建 GeoJSON 字符串,但我想知道...是否有更直接的方法?
据我所知,geo_shape 字段已经作为 GeoJSON 字符串存储在 elasticsearch JSON 文档中,所以在我看来这是一种资源浪费通过从 JSON 文档中读取 geo_shape,反序列化为 MultiPolygonGeoShape,然后 post 处理为 GeoJSON,此时 GeoJSON 从一开始就已经存在.
As far as I know the geo_shape field is already stored in the elasticsearch JSON document as a GeoJSON string, so it looks to me like a waste of resources going through reading the geo_shape fromt the JSON document, deserializing into MultiPolygonGeoShape and then postprocessing to GeoJSON, when the GeoJSON was already there from the beginning.
它没有作为 GeoJSON 字符串 存储在 _source
中;它是一个 GeoJSON 对象,具有 "type"
、"coordinates"
等属性
反序列化为类型是否浪费资源取决于你想对数据做什么。如果您只想再次序列化回 GeoJSON,那么完成 deserialization/serialization 往返可能会产生开销。在这种情况下,您最好使用通过 client.LowLevel
属性 在 NEST 上公开的低级别客户端到 return 完整响应作为 string
或 byte
数组,deserialize/parse 只有您感兴趣的属性。
我目前有一个通过 NEST 检索对象的弹性搜索查询
public class ElasticSearchObject
{
[PropertyName("code")]
public string Code { get; set; }
[PropertyName("geometria")]
public MultiPolygonGeoShape Geometria { get; set; }
}
查询现在正在运行,但我需要更改 "Geometria" 属性 的类型(映射到 elasticseach 存储文档中的 geo_shape 字段)。现在它必须是一个包含 GeoJSON 字符串的字符串。我可以 post 处理 MultiPolygonGeoShape 属性 并从其内容构建 GeoJSON 字符串,但我想知道...是否有更直接的方法?
据我所知,geo_shape 字段已经作为 GeoJSON 字符串存储在 elasticsearch JSON 文档中,所以在我看来这是一种资源浪费通过从 JSON 文档中读取 geo_shape,反序列化为 MultiPolygonGeoShape,然后 post 处理为 GeoJSON,此时 GeoJSON 从一开始就已经存在.
As far as I know the geo_shape field is already stored in the elasticsearch JSON document as a GeoJSON string, so it looks to me like a waste of resources going through reading the geo_shape fromt the JSON document, deserializing into MultiPolygonGeoShape and then postprocessing to GeoJSON, when the GeoJSON was already there from the beginning.
它没有作为 GeoJSON 字符串 存储在 _source
中;它是一个 GeoJSON 对象,具有 "type"
、"coordinates"
等属性
反序列化为类型是否浪费资源取决于你想对数据做什么。如果您只想再次序列化回 GeoJSON,那么完成 deserialization/serialization 往返可能会产生开销。在这种情况下,您最好使用通过 client.LowLevel
属性 在 NEST 上公开的低级别客户端到 return 完整响应作为 string
或 byte
数组,deserialize/parse 只有您感兴趣的属性。