2016-08-15 80 views
0

我有点特别的要求。Cassandra:按查询排序

Constelation:我使用Redis DB来存储地理数据并使用georedius将它们返回,按距离排序。用这个键我搜索cassandra中的数据。但是cassandra的结果是在关键或其他东西中排序的。

我想要的是,以我要求的相同顺序恢复信息。 分区键是从ID(我回来形式redis)和状态。

我可以告诉cassandra按id数组排序吗?

回答

0

分区键设计为随机分布在不同的节点上。您可以使用ByteOrderedPartitioner来执行有序查询。但防喷器被认为是反模式是卡桑德拉,我会强烈建议反对它。你可以在这里阅读更多关于Cassandra ByteOrderedPartitioner

您可以将更多参数添加到主键,这将决定如何在磁盘上存储数据。这些被称为集群密钥。您可以通过查询集群密钥来进行排序。这是关于集群密钥https://docs.datastax.com/en/cql/3.1/cql/ddl/ddl_compound_keys_c.html的一个很好的文档。

如果你可以共享更多的模式细节,我可以建议使用什么作为集群密钥。

+0

谢谢。好。我希望有一个函数可以在之后进行分类。所以我必须在我的代码中这样做。我有一个经度和纬度,但是在cassandra表中没有任何信息来获得搜索和结果点之间的距离。 – CordlessWool