2013-08-28 48 views

回答

0

你可以做一個SliceQuery,並做一個範圍從前綴到前綴|,提供它應該工作的唯一字母數字。

StringSerializer ss = StringSerializer.get(); 
SliceQuery sliceQuery = HFactory.createSliceQuery(keySpace, rowSerializer, ss, ss); 
sliceQuery.setColumnFamily(MY_COLUMN_FAMILY); 
sliceQuery.setKey(rowKey); 
sliceQuery.setRange("prefix", "prefix|", false, Integer.MAX_INT); 
+0

有沒有範圍,我只是想用前綴所有coluns,但我也認爲這將是作爲卡桑德拉將不得不遍歷所有列太慢了吧? – Peter

+0

不完全是這樣,它爲每個這麼多字節保留一個索引(column_index_size_in_kb)。由於列被排序,它將能夠非常接近(在上面的索引的大小內)到數據並讀取,直到它到達片的末尾。您的列切片實際上會快速高效。將其視爲對數據的二進制搜索,然後讀取它直到達到「前綴|」值。 –

相關問題