2012-04-27 63 views
1

我的數據模型看起來像這樣超列族的副索引的任何替代卡桑德拉

 #keyspace_name{ 
      #columnfamily1 
       {startDate_mobileNo: // row key 
         { Call_TYpe: // super column 
           { xyz: value 
           endDate : value; 
           } 
         } 
       } 

現在我想使搜索結果過濾startDate_mobileNo,CALL_TYPE和結束日期。 這可以通過將endDate作爲二級索引來完成。但超級列中的二級索引是不可能的。所以我無法想象如何繼續。是的,我可以通過使用簡單的java編碼過濾結果數據來執行二級索引篩選部分。但我想這不是正確的想法,因爲如果大數據可能存在缺乏記憶。所以請給我建議一些想法。

在此先感謝

回答

3

我相信你可以得到你想要使用組合鍵,這在卡桑德拉1.1新的第一級CQL支持什麼。有關更多信息,請參見this blog post about modeling with composites

超級柱絕對是錯誤的方式 - 它們一直存在問題,現在已被棄用,您可以使用複合材料來獲得您想要的所有內容。

如果我解釋你的模型正確,你可以這樣做:

CREATE TABLE columnfamily1 (
    startDate timestamp, 
    mobileNo text, 
    Call_TYpe int, 
    endDate timestamp, 
    xyz text, 
    PRIMARY KEY (startDate, mobileNo, Call_TYpe) 
); 

你也可以將結束日期上的輔助指標,如果你想要的。我不清楚你是否願意。

如果您想給出您需要支持的排序查詢的更具體的示例,我可能會提供更多幫助。

+0

是的Paul先生您已經正確解釋了我的數據模型。是的,我也希望將endDate設置爲二級索引。實際上,我想要檢索一些結果,從我的columnfamily中過濾這四個字段。但是,使用超級柱子系列我無法以更高的效率進行操作。我還有一個要求,我可以有你的電子郵件ID,以便我可以從你身上學到一些東西,當然如果你不介意的話。 – abhi 2012-04-27 22:39:20

+0

我寧願在可能的地方回答SO的問題,或者至少在[Datastax支持論壇](http://www.datastax.com/support-forums/)上回答問題,以便我(和其他人)可以幫助很多人人們一次。有限的時間,你知道。 – 2012-04-30 01:53:33

+0

保羅先生我需要你的幫助。請訪問這個鏈接http://stackoverflow.com/questions/10482493/astyanax-composite-column – abhi 2012-05-08 05:10:14