elasticsearch - Express-cassandra elassandra按geo_point排序

标签 elasticsearch cassandra express-cassandra

我有以下UDT:

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

cassandra模型中定义的以下geoloc:
geoloc: {
  type: 'frozen',
  typeDef: '<geo_point>'
}

和elasticsearch映射:
    "geoloc": {
        "type": "geo_point",
        cql_collection: 'singleton',
        "index" : true
    },

我可以插入具有geo_point位置的对象并在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

最佳答案

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

关于elasticsearch - Express-cassandra elassandra按geo_point排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59302328/

相关文章:

elasticsearch - 如何停止 logstash 将 logstash 日志写入 syslog?

elasticsearch - 尝试启动Logstash时如何解决问题 'Unsupported major.minor version 52.0'

java - Cassandra CQL表INSERT和INDEX问题

elasticsearch - 如何设置与elassandra和我自己的测试结合使用?

elasticsearch - 使用给定参数的groupby查询elasticsearch

elasticsearch - 如何将一个文档中的多个嵌套对象与elasticsearch中的内部命中相匹配

java - 如何使用 Spring Data Cassandra 将域对象映射到 CQL 表?

java - Cassandra java 驱动程序 UDT 映射

node.js - 暂停 cassandra 流以进行异步操作