在cassandra表的群集密钥上使用SASIIndex

时间:2017-07-05 18:30:57

标签: cassandra cassandra-3.0

我的表的当前设置是这样的:

CREATE TABLE test.user_codes (
    user_uuid text,
    code text,
    description text,
    PRIMARY KEY (user_uuid, code)
);
CREATE CUSTOM INDEX user_codes_code_idx ON test.user_codes
(code) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS =
{'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.NonTokenizingAnalyzer', 
'case_sensitive': 'false', 'mode': 'CONTAINS', 'analyzed': 'true'};

CREATE CUSTOM INDEX user_codes_description_idx ON test.user_codes
(description) USING 'org.apache.cassandra.index.sasi.SASIIndex' WITH OPTIONS =
{'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.NonTokenizingAnalyzer', 
'case_sensitive': 'false', 'mode': 'CONTAINS', 'analyzed': 'true'};

我可以成功拨打以下电话:

SELECT * FROM user_codes WHERE user_uuid='xxxx' and description like 'Test%';

但是,除非我允许过滤,否则我无法进行类似的通话:

SELECT * FROM user_codes WHERE user_uuid='xxxx' and code like 'Test%';

我认为这是因为字段code是一个聚类键,但无法找出设置表的正确方法,这样第二个调用也可以。

0 个答案:

没有答案