我的表的当前设置是这样的:
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
是一个聚类键,但无法找出设置表的正确方法,这样第二个调用也可以。