我希望有一個表的東西如下:卡桑德拉1.1複合密鑰,列和濾波CQL 3
CREATE TABLE ProductFamilies (
ID varchar,
PriceLow int,
PriceHigh int,
MassLow int,
MassHigh int,
MnfGeo int,
MnfID bigint,
Data varchar,
PRIMARY KEY (ID)
);
總共有13個領域。其中大部分代表水桶。數據是產品系列ID的JSON,然後用於後續查詢。 鑑於Cassandra的工作方式,引擎蓋下的列名將是值。我希望過濾這些。
我希望如下運行查詢:
SELECT Data FROM MyApp.ProductFamilies WHERE ID IN (?, ?, ?) AND PriceLow >= ?
AND PriceHigh <= ? AND MassLow >= ? AND MassHigh <= ? and MnfGeo >= ? AND
MnfGeo <= ?
- 我讀的卡桑德拉只能執行WHERE對複合排按鍵或索引列謂詞。這仍然是真的嗎?如果是這樣,我將不得不使數據部分的PK列<。
- 是否仍然需要從左到右包含所有列並且不能跳過?
- 我的設計中是否有非最佳點?
- 我想添加一列「材料」,這是一個產品系列中可能的材料數組。想想比薩澆頭,並查詢「哪裏的材料('菠蘿')」。如果不創建單獨的材質倒排索引,然後對上述查詢執行手動交集,在Cassandra中是否還有其他[更優雅]的處理方式?
再次,這是我的答案,它仍然是成立的:d http://stackoverflow.com/questions/11825783/cassandra-and-querying-hierarchies/11828376 #11828376 – Tamil
是的......謝謝,但是隻能對PK進行過濾的點呢?我知道你的答案是真的;) – IamIC
還有關於#4的任何想法? – IamIC