PHP-CASSANDRA-LUCENE 带排序的分页
PHP-CASSANDRA-LUCENE Paging with sorting
我正在尝试在 cassandra 中使用分页获取排序的记录,它使用 lucene 索引进行搜索和排序
注意:用户 table
共有 26 行
案例一:升序分页排序
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
中出现
案例二:分页降序排列
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}]}');
这将只给出 19 行,按 user_id 前 10 行,然后是第一页相同的 9 行
这是不是说明cassandra分页和lucene排序不能同时使用?如果是,那么还有其他方法可以使用 cassandra 分页对 lucen 索引进行排序吗?回答时请考虑基于时间轴的排序和分页不能在这里应用,因为我在排序时必须考虑太多的列。
分页和排序应该一起工作。您使用的是 Apache Cassandra 和 Lucene 索引插件的哪个版本?
您能否提供 table 和索引创建语句以及每个查询返回的行? user_id
和 mac_address
的值足以重现该问题。
我正在尝试在 cassandra 中使用分页获取排序的记录,它使用 lucene 索引进行搜索和排序
注意:用户 table
共有 26 行案例一:升序分页排序
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
中出现案例二:分页降序排列
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}]}');
这将只给出 19 行,按 user_id 前 10 行,然后是第一页相同的 9 行
这是不是说明cassandra分页和lucene排序不能同时使用?如果是,那么还有其他方法可以使用 cassandra 分页对 lucen 索引进行排序吗?回答时请考虑基于时间轴的排序和分页不能在这里应用,因为我在排序时必须考虑太多的列。
分页和排序应该一起工作。您使用的是 Apache Cassandra 和 Lucene 索引插件的哪个版本?
您能否提供 table 和索引创建语句以及每个查询返回的行? user_id
和 mac_address
的值足以重现该问题。