2013-12-16 7 views
1

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

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

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

ответ

2

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

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

HTH.

1

Не встроенный в C *, но возможен с cassandra-lucene-index C * plugin. Вы можете создать индекс lucene в столбце и искать текст, используя prefix search.

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