Cassandra InvalidQueryException是否存在二级索引?
我有一个列族,如下所述。我有名称列的辅助键Cassandra InvalidQueryException是否存在二级索引?,cassandra,datastax,datastax-java-driver,database,nosql,Cassandra,Datastax,Datastax Java Driver,Database,Nosql,我有一个列族,如下所述。我有名称列的辅助键 CREATE TABLE group ( pid timeuuid, members map<bigint, boolean>, name text, PRIMARY KEY ((pid)) ) WITH bloom_filter_fp_chance=0.010000 AND caching='KEYS_ONLY' AND comment='' AN
CREATE TABLE group (
pid timeuuid,
members map<bigint, boolean>,
name text,
PRIMARY KEY ((pid))
) WITH
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
index_interval=128 AND
read_repair_chance=0.000000 AND
replicate_on_write='true' AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='99.0PERCENTILE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'};
CREATE INDEX pidx ON group(name);
创建表组(
pid timeuuid,
各位议员:,
名称文本,
主键((pid))
)与
bloom_过滤器_fp_概率=0.010000和
缓存class='KEYS\u ONLY'和
注释=“”和
dclocal\u读取\u修复\u机会=0.100000和
gc_grace_秒=864000和
索引间隔=128和
读取\u修复\u机会=0.000000和
在_write='true'和上复制
在\u flush='false'和
默认\u time\u to\u live=0和
推测性_retry='99.0百分位'
memtable_flush_period_in_ms=0和
压缩={'class':'SizeTieredCompactionStrategy}和
压缩={'sstable_compression':'LZ4Compressor'};
在组(名称)上创建索引pidx;
但是java驱动程序中的name
列上的query
是否相等给了我一个
com.datastax.driver.core.exceptions.InvalidQueryException:by columns子句中没有带相等运算符的索引列
我的问题如下。谷歌的所有搜索结果都是关于没有二级索引或使用一些非相等关系运算符
尽管有二级索引,但出现此错误的原因是什么
这是我的查询:SELECT*FROM group WHERE name='name'
更新:相同的模式适用于我的本地主机cassandra服务器,但不适用于我们公司提供的服务器
在任何情况下,它都是从cqlsh
窗口工作的,但在远程服务器的情况下,它不是通过java datastax驱动程序工作的,其他类型的查询工作正常
谢谢。刚刚浏览了您的代码。创建了上面提到的表(使用复制粘贴只是为了确保所做的一切都是正确的),创建了索引。一切正常。这导致两个结论之一:
- 索引创建失败,导致出现错误消息。(我的钱在这上面…)
- 您可能使用了不正确的键空间
连评论都没有?似乎…我只是按照你的确切步骤在cqlsh工作。你能再试一次创建索引吗?我甚至在我的本地主机服务器上也试过,它正在工作。。。。但是我在一个工作环境中,我说的是我们公司提供的一个远程服务器,其中的密钥空间是Store,每个专栏系列都有这样的情况,从cqlsh它可以工作,但从java它不能工作…@BrianC有没有可能是因为我们公司的cassandra密钥空间中的配置?我甚至在我的本地主机服务器上尝试过这个,它可以工作。。。。但是我在一个工作环境中,我说的是我们公司提供的一个远程服务器,其中存储密钥空间。所有列空间的问题都是一样的。若索引创建是一个问题,我认为它不应该从cqlsh客户端工作。它是从cqlsh工作的,它不是从java程序工作的。@pinkparter我认为它是一次性的。尝试在测试表上重新创建带有索引的ks.cf对,看看会发生什么。