Cassandra 1.1 claves compuestas, columnas y filtrado en CQL 3

Deseo tener una tabla algo como sigue:

CREATE TABLE ProductFamilies (
  ID varchar,
  PriceLow int,
  PriceHigh int,
  MassLow int,
  MassHigh int,
  MnfGeo int,
  MnfID bigint,
  Data varchar,
  PRIMARY KEY (ID)
);

Hay 13 campos en total. La mayoría de estos representan cubos. Los datos son un JSON de ID de familia de productos, que luego se utilizan en una consulta posterior.Teniendo en cuenta cómo funciona Cassandra, los nombres de columna debajo del capó serán los valores. Deseo filtrar estos.

Deseo realizar consultas de la siguiente manera:

SELECT Data FROM MyApp.ProductFamilies WHERE ID IN (?, ?, ?) AND PriceLow >= ? 
AND PriceHigh <= ? AND MassLow >= ? AND MassHigh <= ? and MnfGeo >= ? AND 
MnfGeo <= ?
Leí que Cassandra solo puede ejecutar predicados WHERE contra claves de fila compuestas o columnas indexadas. ¿Esto sigue siendo cierto? Si es así, tendría que hacer que las columnas <Datos formen parte de la PK.¿Sigue siendo el caso que uno tiene que incluir todas las columnas de izquierda a derecha y no puede omitir ninguna?¿Hay puntos no óptimos en mi diseño?Me gustaría agregar una columna "Materiales", que es un conjunto de posibles materiales en una familia de productos. Piense en ingredientes de pizza, y consulte "WHERE Materials IN ('Pineapple')". Sin crear un índice invertido separado de materiales y luego realizar una intersección manual contra la consulta anterior, ¿hay alguna otra forma [más elegante] de manejar esto en Cassandra?

Respuestas a la pregunta(2)

Su respuesta a la pregunta