Cassandra CQL:如何在动态列上执行WHERE-like查询?

Cassandra CQL:如何在动态列上执行WHERE-like查询?,cassandra,thrift,cql,cql3,cassandra-cli,Cassandra,Thrift,Cql,Cql3,Cassandra Cli,考虑以下Cassandra中的简单表格,其中一些值通过CQL3插入: CREATE TABLE sometable ( id varchar, name varchar, value varchar, PRIMARY KEY (id, name)); INSERT INTO sometable (id, name, value) VALUES ('Mary', 'Favorite Color', 'Red'); INSERT INTO sometable (id

考虑以下Cassandra中的简单表格,其中一些值通过CQL3插入:

CREATE TABLE sometable (  
  id varchar,  
  name varchar,  
  value varchar,  
  PRIMARY KEY (id, name));

INSERT INTO sometable (id, name, value) VALUES ('Mary', 'Favorite Color', 'Red');
INSERT INTO sometable (id, name, value) VALUES ('George', 'Favorite Color', 'Green');
INSERT INTO sometable (id, name, value) VALUES ('Bob', 'Favorite Color', 'Red');
INSERT INTO sometable (id, name, value) VALUES ('Mary', 'Phone', '555-1234');
INSERT INTO sometable (id, name, value) VALUES ('George', 'Phone', '555-1212');
INSERT INTO sometable (id, name, value) VALUES ('Bob', 'Email', 'bob@bob.com');
比如说,我们想得到每个人最喜欢的颜色是红色的电话号码。例如,类似于:

SELECT 'Phone' FROM sometable WHERE 'Favorite Color' = 'Red';
我能想到的唯一方法是选择所有感兴趣的列的名称,然后执行过滤客户端:

SELECT name, value from sometable WHERE name IN ('Favorite Color', 'Phone') allow filtering;

有没有办法在CQL或任何其他Cassandra API中过滤动态列值?

二级索引允许您搜索分区键/群集键中的不同字段。您可以在那里找到一些有用的文档:

确保阅读何时使用二级索引/何时不使用二级索引条款。
当您使用Cassandra时,花时间思考如何查询您的专栏族可能是更重要的事情,这一点以及确保您需要Cassandra。

感谢您的回复,但我认为这并不能完全解决我的问题。我正在寻找一个在聚类键中的字段。