2017-02-20 4 views
1

をソートすると:合計26行がPHP-CASSANDRA-LUCENEページング私は</p> <p>ノートを検索し、ソートするためのLuceneインデックスを使用しているカサンドラでページングとソートされたレコードを取得しようとしています

ケースユーザーテーブルにあります。 1:これは、第10行に、USER_ID第10行の昇順に微細であり、最後の6行をすべての26個の行を与えるが、ケース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:false}]}'); 

で昇順にソート

ケース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行と同じで、これはそのカサンドラページングを示すですルーシンソーティングは一緒に使うことはできませんか?はいの場合は、cassandraページングでlucenインデックスの並べ替えを使用する方法はありますか?私が並べ替え中に余りにも多くの列を考慮する必要があるので、答えはタイムラインベースの並べ替えを検討してください。ページングは​​ここでは適用できません。

答えて

0

ページングと並べ替えは一緒に機能するはずです。どちらのバージョンのApache CassandraとLuceneインデックスプラグインを使用していますか?

テーブルとインデックスの作成ステートメントと各クエリによって返された行を入力してください。 user_idmac_addressの値で問題を再現できます。

+0

私はcassandra version 3.7とlucene 3.9.3を使用していますが、テーブルとcoloumnsの名前は正確ではありませんが、シナリオは同じですが、luceneインデックスのあるcassandraで確認できます cassandraページングと任意のluceneインデックスの逆順、すなわちdescresing 私の質問を編集しましたmac_addressはuser_idです –

+1

マニュアルを読むことができるように、cassandra-lucene-index ABCXはApache Cassandra ABCで使用することを目指しているため、Apache Cassandra 3.7は互換性がありません3.9.3と。また、ページングに関する重要なバグは3.9.5と3.7.5に修正されました。 –

+0

Okは、cassandraをバージョン3.9にアップデートすることで修正されました。 ありがとう!!! –