У меня есть семейство столбцов, описанное ниже. У меня есть вторичный ключ для столбца имени.
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
при равенстве столбца name
из java-драйвера дает мне
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'
Обновление: та же схема работает на моем локальном сервере cassandra, но не на сервере, предоставленном нашей компанией.
В любом случае он работает из окна cqlsh
, но в случае удаленного сервера он не работает через драйвер java datastax. Другие типы запросов работают нормально.
Спасибо.
CREATE
разрешения в вашей рабочей среде? - person Aaron   schedule 25.11.2014select *
илиinsert
. - person pinkpanther   schedule 25.11.2014