据我所知,couchbase支持地理空间数据,但我不知道如何使用它。
有没有人知道,是否可以通过couchbase中的N1QL SELECT
语句查询边界框内的元素?
如果是,SELECT
语句将如何查询,以查询以下json中元素的边界框?
{
"type": "Feature",
"properties": {
"name": "Bermuda Triangle",
"area": 1150180
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[-64.73, 32.31],
[-80.19, 25.76],
[-66.09, 18.43],
[-64.73, 32.31]
]
]
}
}
{
"type": "Feature",
"properties": {
"name": "Flemish Diamond",
"area": 2947
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[3.55, 51.08],
[4.36, 50.73],
[4.84, 50.85],
[4.45, 51.30],
[3.55, 51.08]
]
]
}
}
{
"type": "Feature",
"properties": {
"name": "Research Triangle",
"area": 252
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[-78.93, 36.00],
[-78.67, 35.78],
[-79.04, 35.90],
[-78.93, 36.00]
]
]
}
}
答案 0 :(得分:1)
Couchbase地理空间查询仅通过地理空间视图支持,而非N1QL查询。
您需要为坐标创建地理空间视图,并通过Views API进行查询。
您可以在Couchbase Server文档中查看有关地理空间视图的更多信息:https://developer.couchbase.com/documentation/server/current/indexes/querying-using-spatial-views.html
技术上可以使用N1QL模拟地理空间查询,但是它不会受到空间索引的支持,并且会导致显着的性能损失 - 特别是对于您提供的多边形数据。您可以在此处查看有关如何使用点数据执行此操作的文章:https://dzone.com/articles/speed-up-spatial-search-in-couchbase-n1ql