Фильтрация по значению карты в cql Cassandra - PullRequest
0 голосов
/ 26 апреля 2018

Я пытаюсь выбрать записи, отфильтровывая значения в столбце карты.

name (text) | last (text) | languages(map<text:text>)
john | stith | {12:English, 123:Spanish}
Jane | Doe | {34:Italian, 123:Spanish}

Я пытаюсь выбрать записи, в которых в качестве значения используется только итальянский язык.но из документации видно только, как получить записи по ключу.

отфильтровывая по итальянски, я должен получить Джейн Доу на примере выше.Как мне выполнить фильтрацию?

1 Ответ

0 голосов
/ 26 апреля 2018

вам нужно создать индекс по значению карты.Предполагая, что индекс для значения карты создан, отфильтруйте данные, используя значение на карте

SELECT * FROM table WHERE languages CONTAINS 'Italian';

Чтобы создать индекс для значений

CREATE INDEX mymapvalues ON tableName(languages);

, см. Дополнительную информацию https://docs.datastax.com/en/cql/3.1/cql/ddl/ddlIndexColl.html

...