【发布时间】:2018-01-19 22:55:30
【问题描述】:
我想使用聚类键上的过滤器来选择数据。
特别是我需要两个聚类键上的过滤器:
- 应使用切片过滤器限制第一个聚类键(如 >、>=、
- 应使用 IN 过滤器限制第二个聚类键
使用最新版本的 cassandra (3.11.0) 这样的过滤器不起作用。 顺便说一句:在文档中没有发现这个特殊的限制。
以下是重现问题的步骤:
DROP TABLE IF EXISTS testing.t1
CREATE TABLE IF NOT EXISTS testing.t1 (
c1 text,
c2 int,
c3 text,
PRIMARY KEY (c1, c2, c3));
INSERT INTO testing.t1 (c1,c2,c3) VALUES ('key1',100,'clust1')
INSERT INTO testing.t1 (c1,c2,c3) VALUES ('key1',110,'clust1')
INSERT INTO testing.t1 (c1,c2,c3) VALUES ('key1',120,'clust2')
INSERT INTO testing.t1 (c1,c2,c3) VALUES ('key1',130,'clust3')
INSERT INTO testing.t1 (c1,c2,c3) VALUES ('key2',160,'clust2')
SELECT * FROM testing.t1
WHERE c1 = 'key1'
AND c2 > 100
AND c3 IN ('clust2','clust3')
ALLOW FILTERING
查询产生以下错误:
code=2200 [无效查询] message="索引列不支持IN限制"
你能帮我澄清一下这个问题吗?
是否有特殊原因不允许使用此类过滤器,或者它是过去的遗留物?
谢谢!
【问题讨论】: