2011-04-15 131 views
0

我正在研究使用Aquiles在Cassandra中使用二級索引功能的可能性。我知道主索引(鍵),我必須使用OrderPreservingPartitioner來查詢。起初,我認爲使用二級索引時,沒有這種限制,但我注意到開始鍵是GetIndexedSlicesCommand的一部分。這是否暗示在RandomPartitioner下,此命令不可用?Cassandra在RandomPartitioner下的二級索引

回答

2

您不需要OrderPreservingPartitioner按行鍵進行查詢,只有在您想通過鍵獲取有意義範圍的行時才需要它,如'所有行的鍵值介於5和9之間'。 (請注意,幾乎總是可以使用use RandomPartitioner instead。)

get_indexed_slices的開始鍵的行爲與get_range_slices的行爲相同。也就是說,在使用RandomPartitioner時檢查兩個鍵之間的一系列行並不是很有意義,但它對非常有用,可用於對很多行進行分頁。這個話題甚至有一個FAQ entry。基本上,如果你打算從get_indexed_slices調用中獲得大量的結果,你不想一次獲取所有的結果,你想得到一個大塊(10,100或1000,取決於大小)然後將start_key設置爲您在前一個塊中看到的最後一個鍵以獲取下一個塊。

+0

你是否可以使用RandomPartitioner獲得5到9之間的一個鍵範圍的行?因爲根據我正在閱讀的內容,它不僅不被推薦,而且也不可能。 – galets 2011-04-21 15:18:17

+0

不,不需要OrderPreservingPartitioner。 – 2011-04-21 17:26:16

+0

所以當我有RP時,我怎麼需要調用get_indexed_slices,哪一個啓動鍵在第一次調用時提供?我的理解是在幕後,它會被轉換爲MD5,那麼跳過那些MD5低於開始鍵的所有鍵? – galets 2011-04-22 00:13:20

相關問題