Question

I would like to create and use an index on "age" key of a standard column family.

I did the following using 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'

According to this nice page, I need to set the value type. However:

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'}

so age has a data type set.

Any ideas?

Was it helpful?

Solution

Instead of the string 'GT', use pycassa.index.GT. It's an enum that Thrift implements with integers.

You can find all of the documentation and an example usage here: http://pycassa.github.com/pycassa/api/pycassa/index.html

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top