我无法使用 elassandra 和 cassandra-express 驱动程序映射地理点。
地理点 UDT:
manageESIndex: true,
udts: {
geopoint: {
lat: 'double',
lon: 'double'
}
}
cassandra 表弹性映射:
location: {
type: 'frozen',
typeDef: '<geopoint>'
}
...
es_index_mapping: {
discover: '.*',
properties: {
"location": {
"type": "geo_point"
}
}
}
生成的弹性映射是:
"location": {
"type": "nested",
"cql_collection": "singleton",
"cql_udt_name": "geopoint",
"properties": {
"lat": {
"type": "double",
"cql_collection": "singleton"
},
"lon": {
"type": "double",
"cql_collection": "singleton"
}
}
}
可以看出,映射不会产生geo_point,而是产生纬度/经度对。这在尝试进行距离搜索时不起作用。似乎在使用“发现”时,映射属性被忽略了。