Cassandra CQL 3 — выбор префикса

есть ли способ выполнить выбор на основе префикса строки с использованием CQL3? Например, рассмотрим следующую таблицу:

Key | Value
------------
ABC | 0x01
ABD | 0x02
BBB | 0x03

Я хочу выбрать все ключи с префиксом «AB». База данных будет использоваться для хранения пространственной информации с использованием геохеш-подхода.


person mariolpantunes    schedule 16.12.2013    source источник


Ответы (2)


Это невозможно "из коробки"... Тем не менее, есть некоторые "уловки", которые придумали люди, см. эти два поста:

... другой (чем-то похожий) подход может заключаться в определении "составного ключа", где вы определяете некоторые префиксы как "ключ раздела", например: {key1,key2}, где key1 = ABи key2 = ABC... в этих ситуациях вы можете запрашивать только "key1" и получите набор строк (как вы хотите) или по «key1» и «key2» (если вам нужна конкретная запись). Вы также можете запрашивать только «key2» (если вы добавите «разрешить фильтрацию» к вашему запросу «выбрать», однако это может привести к «проблемам», если у вас слишком много строк). Не уверен, что вы можете сделать это с вашими данными...

ХТН.

person emgsilva    schedule 16.12.2013

Не встроен в C*, но возможен с помощью cassandra-lucene-index плагина C* . Вы можете создать индекс Lucene для столбца и искать текст, используя поиск по префиксу.

ОБНОВЛЕНИЕ: Начиная с v3.4 Cassandra представила индексы SASI, предлагающие необходимую функциональность.

person aux    schedule 11.12.2016