2017-02-20 8 views
1

Я пытаюсь принести отсортированные записи с пейджинга в Кассандре, которая с помощью индексов Lucene для поиска и сортировкиPHP-CASSANDRA-Lucene пейджинга с сортировкой

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

Case 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 строк же первой страницы

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

ответ

0

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

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

+0

Я использую версию cassandra 3.7 и lucene 3.9.3, имена таблиц и coloumns являются фиктивными, не точными, я использую, но сценарий один и тот же, вы можете проверить его на любой кассандре с индексами lucene. Использовать пейджинг и сортировку cassandra с помощью любых индекс lucene в обратном порядке, т.е. descresing Я также отредактировал мой вопрос mac_address is 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 Спасибо !!! –

Смежные вопросы