Cassandra выбирает запрос с помощью команды IN в поле карты

Я создал таблицу «тест» и вставил некоторые значения, используя приведенные ниже команды, используя CQL.

create table testt(val map<text,text>, id text primary key); insert into testt (val,id) values ({'key':'1'},'1');

Когда я получаю запрос ниже, он работает

select * from testt where val['key']='1' allow filtering;

Мне нужно получить несколько значений, каждое из которых содержит значение в val[key']. Использование приведенной ниже команды приводит к ошибке.

select * from testt where val['key'] IN( '1' ) allow filtering;

SyntaxException: <ErrorMessage code=2000 [Syntax error in CQL query] message="line 1:37 no viable alternative at input 'IN' (... testt where val['key'] [IN]...)">

Есть ли другой способ или методы для получения желаемого результата?


person Sharavanakumaar Murugesan    schedule 04.08.2016    source источник
comment
Привет. Какая потребность? Поиск по коллекции очень сложен. Вероятно, вы можете использовать другую модель для более легкого поиска нужного значения. Например, используйте таблицу поиска.   -  person Guillaume S    schedule 05.08.2016


Ответы (1)


Единственный способ получить значения для нескольких ключей в Cassandra — выполнить несколько запросов. Возможно, вы сможете настроить свой первичный ключ для получения нужных значений с помощью одного запроса.

person gsteiner    schedule 05.08.2016