Cassandra has native indexing capabilities, but those capabilities only
work if the values stored in your columns are the values you want
indexed. If the data is structured in some way (e.g. JSON or Protobuf),
it is impossible to leverage Cassandra's indexing capabilities out of
A while back we had a discussion on the dev list regarding indexing
attributes stored in columns in Cassandra. I think Jermiah Jordan had
the best description of the problem
. Lately, we found ourselves with the same problem so we ended up building it into our cassandra-indexing extension.
Our cassandra-indexing module
is an AOP-based extension to Cassandra. Drop the jar file in the
Cassandra lib directory, update the start script to include the
extension and the aspect will take care of indexing information as you
mutate the data in Cassandra.
To support indexing a specific field within the column value, we added
the ability for a user to specify a field to index (not just a column
name). We then parse the JSON document as it is written in the
mutation, extract the values and create entries in the wide-row index
for that column family.
Specifics for the new JSON-based indexing configuration
be found on the wiki. Admittedly, we are still light on documentation.
If you have any trouble using the new capability, let us know.