Cassandra 1.1 chaves compostas, colunas e filtragem em CQL 3

Eu gostaria de ter uma tabela algo como segue:

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

Existem 13 campos no total. A maioria deles representa baldes. Os dados são um JSON de IDs de famílias de produtos, que são usados ​​em uma consulta subsequente.Dado como o Cassandra funciona, os nomes das colunas sob o capô serão os valores. Eu desejo filtrar isso.

Desejo executar consultas da seguinte maneira:

SELECT Data FROM MyApp.ProductFamilies WHERE ID IN (?, ?, ?) AND PriceLow >= ? 
AND PriceHigh <= ? AND MassLow >= ? AND MassHigh <= ? and MnfGeo >= ? AND 
MnfGeo <= ?
Eu li que Cassandra só pode executar os predicados WHERE contra chaves de linha compostas ou colunas indexadas. Isso ainda é verdade? Se assim for, eu teria que fazer as colunas <Data part of the PK.Ainda assim, é necessário incluir todas as colunas da esquerda para a direita e não pode pular nenhuma?Existem pontos não ótimos no meu design?Eu gostaria de adicionar uma coluna "Materiais", que é uma matriz de materiais possíveis em uma família de produtos. Pense em coberturas de pizza e consulte "WHERE Materials IN ('Pineapple')". Sem criar um índice invertido separado de materiais e, em seguida, realizar uma interseção manual contra a consulta acima, há alguma outra maneira [mais elegante] de lidar com isso em Cassandra?

questionAnswers(2)

yourAnswerToTheQuestion