我有一个类似于'地址'的文字字段。在我的Cassandra表中。我想根据地址'中的某些文字搜索记录。像城市或街道名称的字段。
例如:我的地址如同#18; House No. 18,Shehzad Colony,M.D.A。 Chowk Lahore'。在这里,我想搜索具有字符串& C.D.A的一部分的记录。 Chowk Lahore'在地址字段中。
如何使用CQL shell执行此操作。任何人都可以指导我......
感谢...
答案 0 :(得分:1)
真的没有办法开箱即用。在Cassandra中,您需要设计表以适合您的查询模式。因此,如果按城市(或其他)搜索地址是您需要支持的模式,那么有几种方法可以做到这一点。
您可以创建新的查询表,并按city
分区:
CREATE TABLE userAddressesByCity (
userID uuid,
firstName text,
lastName text,
street text,
city text,
province text,
postalCode text,
PRIMARY KEY (city,userID));
此表结构支持city
作为分区键进行查询,并且还有userID
作为群集密钥以确保唯一性。
如果您正在使用地址,一种有用的技巧是创建User Defined Type(UDT)。如果要将用户的地址存储在单个列中,UDT非常有用。但您仍然希望创建一个专门设计的表,以便根据您需要的任何列提供查询。
注意:您可以尝试一个表并在其中一个列上创建二级索引,但二级索引的规模很差,因此我不建议这样做。