2012-04-19 1 views
1

Я хотел бы создать и использовать индекс по «возрасту» ключа стандартного семейства столбцов.cassandra создание и использование индекса [pycassa]

я сделал следующее, используя pycassa:

In [10]: sys.create_index('test01', 'word_map', 'age', 'IntegerType', index_type=0, index_name='index_age') 
In [11]: age_expr = create_index_expression('age', 6, GT) 
In [12]: clause = create_index_clause([age_expr], count=20) 
In [13]: cf.get_indexed_slices(clause) 

error: 'No indexed columns present in index clause with operator EQ' 

В соответствии с этим красивым page, мне нужно установить тип значения. Однако:

In [16]: cf_words.column_validators 
Out[16]: {'black_white': 'BooleanType', 'url': 'UTF8Type', 'age': 'IntegerType', 'site': 'UTF8Type', 'len': 'IntegerType', 'content': 'UTF8Type', 'colourful': 'BooleanType', 'printer_friendly': 'BooleanType'} 

поэтому возраст имеет набор типов данных.

Любые идеи?

ответ

2

Вместо строки «GT» используйте pycassa.index.GT. Это перечисление, которое Thrift реализует с целыми числами.

Вы можете найти всю документацию и пример использования здесь: http://pycassa.github.com/pycassa/api/pycassa/index.html

+0

Если бы я использовал pycassa.index.GT он говорит NameError: глобальное имя «pycassa» не определено Изменение кода «GT» для GT дает мне другую ошибку: «Нет индексированных столбцов, присутствующих в индексе с операторским эквалайзером» – rikAtee

+0

@rikAtee Вам нужно сделать что-то вроде «из pycassa.index import GT», а затем вы можете просто использовать GT напрямую. «Нет индексированных столбцов, присутствующих в разделе индекса», заключается в том, что в вашем предложении должно быть хотя бы одно выражение EQ, которое имеет дело с индексированным столбцом для вторичных запросов индекса с Cassandra. –

+0

Я сделал: sys.alter_column ('test01', 'word_map', 'age', 'IntegerType') и: sys.create_index ('test01', 'word_map', 'age', 'IntegerType') и Я все еще получаю «InvalidRequestException (почему =« Нет индексированных столбцов, присутствующих в индексе с операторским эквалайзером »)« – rikAtee

 Смежные вопросы

  • Нет связанных вопросов^_^