express cassandra elassandra按地理位置点排序

li9yvcax  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(404)

我有以下udt:

udts: {
  geo_point: {
    lat: 'double',
    lon: 'double'
  }
}

cassandra模型中定义了以下地理位置:

geoloc: {
  type: 'frozen',
  typeDef: '<geo_point>'
}

和elasticsearchMap:

"geoloc": {
        "type": "geo_point",
        cql_collection: 'singleton',
        "index" : true
    },

我可以插入带有地理点位置的对象,并在elasticsearch中查询它们(它们通常显示为 "geoloc":{"lon":34.855744,"lat":31.913353} ),我可以确认elasticsearch中的结构是正确的,但每次我尝试使用以下方法按距离排序时:

sort: [{
    "_geo_distance": {
        "geoloc": {
            "lat" : -2.172273,
            "lon" : 43.284734
        },
        "order": "asc",
        // "unit": "km",
        // "distance_type": "plane"
    }
}]

我得到以下例外:

No mapping found for [[object Object]] in order to sort on
izj3ouym

izj3ouym1#

排序应该在主体内部定义,这就是问题所在。

相关问题