Как использовать реляционные операторы в типе карты в cassandra?

create table tbl_master_values (
dbid int primary key,
user_dbid int, reg_dbid int,
module_dbid int,
fields_value map<text,frozen<list<text>>>,
created_date timestamp,
modified_date timestamp);

CREATE INDEX idx_fields_value ON tbl_master_values (Entries(fields_value));

столбец fields_value содержит это значение:

{'287': ['28'], '288': [''], '289': [''], '291': ['33'], '295': [''],'309': ['214', '215']}

Теперь я хочу так:

select * from tbl_master_values where fields_value['287'] > 20;

Это показывает следующую ошибку

InvalidRequest: code=2200 [Invalid query] message="В записях карты поддерживаются только отношения EQ"


person Arunkumar    schedule 03.02.2016    source источник


Ответы (1)


InvalidRequest: code=2200 [Invalid query] message="В записях карты поддерживаются только отношения EQ"

Это довольно ясно. Нет, вы не можете выполнять сканирование диапазона (например, отношение неравенства) с собственным вторичным индексом Cassandra, это просто невозможно.

person doanduyhai    schedule 03.02.2016