Cassandra
允許過濾未按預期工作
ALLOW FILTERING
我在上班時遇到問題。在我們的 Cassandra 1.2 數據庫中,我們有一個這樣的表:CREATE TABLE some_table partition_key text, other_key text, non_key text, PRIMARY KEY (partition_key, other_key)
根據文件,這個查詢應該可以工作:
SELECT * FROM some_table WHERE partition_key = 'foo' AND other_key > 'bar' AND non_key = 'baz' LIMIT 100 ALLOW FILTERING
但是,我收到此錯誤:
無法在“您的鍵空間”上執行 CQL 腳本:使用 Equal 運算符的 by-columns 子句中不存在索引列
即使這個更簡單的查詢也會失敗並出現相同的錯誤:
SELECT * FROM some_table WHERE partition_key = 'foo' AND other_key = 'bar' AND non_key = 'baz' LIMIT 100 ALLOW FILTERING
是的,我知道您可以將二級索引添加到表中,但我認為重點
ALLOW FILTERING
是在您對可能進行大量掃描的事實感到滿意時啟用異常。好像
ALLOW FILTERING
徹底壞掉了。為什麼他們這行不通?
看來此功能具有欺騙性,您嘗試做的事情尚不可能。計劃用於 v3。