我希望使用Cassandra进行附近的搜索类型查询。基于我的lon / lat坐标,我想检索最近的点。我不需要100%的准确性,所以我很习惯使用边界框而不是圆形(性能也更好),但是我找不到具体的指令(希望有一个例子)如何实现边界框。
答案 0 :(得分:4)
根据我的经验,在Cassandra之上进行通用地理空间索引搜索并不容易。我相信你只有两个选择:
Geohashing,将数据集拆分为方形/矩形元素:例如,使用lat / lon的整数部分作为网格中的索引。搜索后,您可以加载封闭网格元素中的所有元素,并在应用程序内执行完整的邻居扫描。
ElasticSearch / Solr / Sphinx /等外部索引。
答案 1 :(得分:1)
2014年欧洲卡桑德拉峰会上触及了这个问题。
RedHat: Scalable Geospatial Indexing with Cassandra
演示者解释了他如何使用用户定义类型创建空间索引,这非常适合使用基于区域或边界框的查找来查询地理空间数据。
一般的想法是将数据分解为由边界框定义的区域。然后,每个区域都代表一个rowkey,然后您可以使用该键来访问与该区域关联的任何数据。如果您有感兴趣的位置,则查询位于该区域内的区域的键空间。