我在Cassandra数据库中有一个表,其中包含用户ID,city1,city2和city3列。如果我想检索所有将“巴黎”作为城市的用户,该怎么办?我了解Cassandra没有OR,所以我不确定如何构造查询。
答案 0 :(得分:1)
首先-这在很大程度上取决于表的结构-如果您将userid
作为分区键,则当然可以使用二级索引来搜索城市中的用户,但这并不是最佳选择,因为它是扇形调用-请求被发送到集群中的所有节点。您可以重新设计以使用以城市作为分区键的实例化视图,但是如果您在某些城市有很多用户,则可能会遇到问题。
通常,如果需要在同一列中选择多个值-可以使用IN
运算符,但最好不要将其用于分区键(并行查询更好)。如果您需要在不同的列上使用OR
,则需要进行并行查询,并在应用程序端收集结果。