基本的に、私のテーブルのセットアップ方法は次のとおりです。
CREATE TABLE points (
name ascii,
id varint,
attributes map<ascii, ascii>,
PRIMARY KEY (name, id)
)
次の SELECT ステートメントを実行すると、これが返されます。
SELECT id, attributes from points limit 5;
id | attributes
----+------------------------------------------
1 | {STATION/Name: ABC, Type: 2, pFreq: 101}
2 | {STATION/Name: ABC, Type: 1, pFreq: 101}
3 | {STATION/Name: DEF, Type: 1, pFreq: 103}
4 | {STATION/Name: GHI, Type: 2, pFreq: 105}
5 | {STATION/Name: GHI, Type: 1, pFreq: 105}
私がやりたいことは、属性内の情報に基づいて WHERE 句を形成できるようにすることです。次のステートメントのようなもの:
SELECT id FROM points WHERE name = 'NAME' AND attributes['pFreq'] = 101;
ただし、これを実行すると、次のエラーが発生します。
Bad Request: line 1:56 no viable alternative at input '['
この議論を見たところ、まだサポートされていないように見えますが、これは本当ですか? または、属性情報をフィルタリングする方法はありますか?
私が使用しているバージョンは次のとおりです。
[cqlsh 4.1.1 | Cassandra 2.0.7 | CQL spec 3.1.1 | Thrift protocol 19.39.0]