【发布时间】:2015-01-23 04:18:15
【问题描述】:
我有一个如下所述的列族。我有 name 列的辅助键。
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);
但是 query 来自 java 驱动程序的 name 列上的相等性给了我一个
com.datastax.driver.core.exceptions.InvalidQueryException: No indexed columns present in by-columns clause with Equal operator
我的查询如下。 google 中的所有搜索结果都与没有secondary index 或使用一些不相等的关系运算符有关。
尽管有二级索引,但出现此错误的原因是什么?
这是我的查询:SELECT * FROM group WHERE name ='Name'
更新:相同的架构在我的 localhost cassandra 服务器中有效,但在我们公司提供的服务器中无效。
无论如何,它在cqlsh 窗口中工作,但在远程服务器的情况下,它不能通过 java datastax 驱动程序工作其他类型的查询工作正常。
谢谢。
【问题讨论】:
-
甚至没有评论?看来....
-
我只是按照您的确切步骤操作,它在 cqlsh 中对我有用。你能再试试创建索引的步骤吗?
-
我什至在我的本地主机服务器中尝试过它正在工作....但我在工作环境中,我说的是我们公司提供的存储密钥空间的远程服务器
-
每个列族都会发生这种情况,从 cqlsh 可以正常工作,但从 java 不能正常工作...
-
@BrianC 有没有可能是因为我们公司的 cassandra 的 keyspaces 中的配置?
标签: cassandra datastax datastax-java-driver database nosql