2
我想這個查詢從卡桑德拉獲取數據:卡桑德拉是索引表達式查詢不起作用
$cf=new ColumnFamily($data->cp,'ips');
$index[]=CassandraUtil::create_index_expression('c',1,'EQ');
$index[]=CassandraUtil::create_index_expression('begin_ip',1599147740,'GTE');
$index[]=CassandraUtil::create_index_expression('end_ip',1599147740,'LTE');
$index_clause = CassandraUtil::create_index_clause($index);
$rows=$cf->get_indexed_slices($index_clause);
foreach($rows AS $key=>$row)
{
$result[]=$row;
}
var_dump($result);
但結果是空。 我非常肯定,有一行cf ips
絕對回答這個問題。
所有列的驗證等級爲IntegerType
。
在卡桑德拉-CLI平等查詢:
get ips where c = int('1') and
begin_ip <= int('1599147740') and
end_ip >= int('1599147740');
也得到空。
我在做什麼錯?
是「c」列有一個索引。我試過了。現在查詢的工作時間比我的send_time_out(60 000 ms)/ recv_time_out(60 000 ms)時間長得多,並且所有的原因都會導致異常「在localhost:9160上執行get_indexed_slices時出錯:異常'cassandra_TimedOutException'並且在查詢結束時'未捕獲異常'MaxRetriesException',並顯示消息'試圖執行get_indexed_slices失敗6次。最後一個錯誤是cassandra_TimedOutException:'爲什麼會這樣呢? – Undrooleek
CF擁有將近3百萬行,每列有4列 – Undrooleek
'c'的值始終爲1,表示所有300萬行匹配? –