PHP-CASSANDRA-LUCENE Пейджинг с сортировкой

Я пытаюсь получить отсортированные записи с подкачкой в ​​Кассандре, которая использует индексы Lucene для поиска и сортировки

Примечание: в пользовательской таблице всего 26 строк

Случай 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}]}');

Это даст всем 26 строкам в порядке возрастания user_id первые 10 строк, вторые 10 строк, затем последние 6 строк, что нормально, но проблема в случае 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}]}');

Это даст только 19 строк в порядке убывания user_id, сначала 10 строк, затем 9 строк, одинаковых с первой страницы.

Означает ли это, что сортировка кассандры и сортировка люцена не могут использоваться вместе? Если да, то какая альтернатива использовать сортировку по lucen индексам с подкачкой кассандры? При ответе, пожалуйста, учтите, что сортировка на основе временной шкалы и разбиение на страницы здесь не применимы, потому что при сортировке приходится учитывать слишком много столбцов.

1

Решение

Пейджинг и сортировка должны работать вместе. Какую версию Apache Cassandra и плагин индекса Lucene вы используете?

Не могли бы вы предоставить операторы создания таблиц и индексов и строки, возвращаемые каждым запросом? Значения user_id а также mac_address было бы достаточно, чтобы воспроизвести проблему.

0

Другие решения

Других решений пока нет …