Cassandra边界框搜索
我希望使用Cassandra进行附近的搜索类型查询。根据我的lon/lat坐标,我想检索最近的点。我不需要100%的准确度,所以我可以轻松地使用边界框而不是圆(性能也更好),但我找不到具体的说明(希望有一个示例)如何实现边界框。根据我的经验,在Cassandra之上进行通用地理空间索引搜索并不容易。我相信你只有两个选择:Cassandra边界框搜索,cassandra,cassandra-2.0,Cassandra,Cassandra 2.0,我希望使用Cassandra进行附近的搜索类型查询。根据我的lon/lat坐标,我想检索最近的点。我不需要100%的准确度,所以我可以轻松地使用边界框而不是圆(性能也更好),但我找不到具体的说明(希望有一个示例)如何实现边界框。根据我的经验,在Cassandra之上进行通用地理空间索引搜索并不容易。我相信你只有两个选择: ,将数据集拆分为方形/矩形元素:例如,使用lat/lon的整数部分作为网格中的索引。在执行搜索时,您可以加载封闭网格元素中的所有元素,并在应用程序中执行完整的邻居扫描 如果
- ,将数据集拆分为方形/矩形元素:例如,使用lat/lon的整数部分作为网格中的索引。在执行搜索时,您可以加载封闭网格元素中的所有元素,并在应用程序中执行完整的邻居扫描
- 如果你有一个均匀分布的数据集,就像我在模拟中的网格点一样,效果很好
- 在像“美国餐馆”这样的数据集上效果很差,在那里,大多数点都聚集在大城市周围。在不同的网格元素(如纽约地区)上会有不平衡的高负载,而在大西洋的某个地方会有绝对空的索引桶
- 外部索引,如//Sphinx/等
- 它们都具有现成的地理空间索引支持,无需在应用程序层中开发自己的索引
- 您必须设置一个单独的索引服务,并保持cassandra/索引数据同步。有一些cassandra/搜索集成,比如(商业的),(我从来没有听说有人在生产中使用这个),或者你可以自己开发,但所有这些都需要时间和精力
一般的想法是将数据分解为由边界框定义的区域。然后,每个区域代表一个行键,您可以使用该行键访问与该区域关联的任何数据。如果您有一个感兴趣的位置,可以查询该区域内区域的键空间 你已经设计好数据模型了吗?没有,我还没有模型。