2017-02-20 55 views
1

我試圖獲取在卡桑德拉分頁排序記錄其使用Lucene索引搜索和排序PHP-CASSANDRA-LUCENE分頁與排序

注:總共有26排在user表

案例1:以升序排序與尋呼

cqlsh > paging 10; 
cqlsh > SELECT user_id FROM user WHERE category_id = 'e4da3b7f-bbce-2345-d777-2b0674a318d5' AND expr(user_index, '{filter:[{type:"match", field:"is_primary", value:true}], sort:[{field: "user_id",reverse:false}]}'); 

這將使在USER_ID前10行的升序,第二10行然後持續6行中的所有行26是好的,但問題在情況2

案例2:排序與分頁降序

cqlsh > paging 10; 
cqlsh > SELECT user_id FROM user WHERE category_id = 'e4da3b7f-bbce-2345-d777-2b0674a318d5' AND expr(user_index, '{filter:[{type:"match", field:"is_primary", value:true}], sort:[{field: "user_id",reverse:true}]}'); 

這會給降序user_ID的第10排的順序只有19行,然後9行相同的第一頁

的是這表明卡桑德拉分頁和lucene排序不能一起使用?如果是,那麼使用cassandra分頁對lucen索引進行排序的替代方法是什麼?在回答請考慮基於時間軸的排序和因爲我要考慮太多的列,而排序分頁無法適用於此。

回答

0

分頁和排序應共同努力。您使用的是Apache Cassandra和Lucene索引插件的哪個版本?

能否請您提供每個查詢返回表和索引的創建語句和行?的user_idmac_address值就足以重現該問題。

+0

我使用卡桑德拉版本3.7和Lucene 3.9.3,桌子和coloumns名字是假的不準確,我使用,但情況是一樣的,你可以使用Lucene指數法檢查它的任何卡桑德拉 使用Cassandra的分頁和排序使用任何以相反的順序Lucene索引即descresing 我還編輯了我的問題MAC_ADDRESS是user_id說明 –

+1

正如你可以在文檔,卡桑德拉-的Lucene索引ABCX旨在與Apache Cassandra的ABC被用來讀取,以便Apache Cassandra的3.7不兼容與3.9.3。另外,與分頁有關的一個重要的bug被固定在3.9.5和3.7.5。 –

+0

好得到了通過更新卡桑德拉到版本3.9 由於固定! –