home

Сортировка сериальных изданий в каталоге

serial_sort_folder.png

Часто для сериального издания заводится подкаталог, в котором размещаются по годам тома и выпуски.

Встает задача сортировки в зависимости от года, тома и выпуска таким образом, чтобы новые выпуски показывались в начале папки.

Для сортировки сериальных изданий в field_config добавлено новое правило "serial" (синоним "serial_desc") и "serial_asc".

Пример заполнения field_config с сортировкой по серии, заглавию и рейтинг:

{
"sort":["serial","title","rating"]
}

Как работает сортировка по серии[править]

Правило "serial" ("serial_asc", "serial_desc") работает следующим образом:

  • если оба сравниваемых документа не содержат в field_serial одинаковую серию, правило игнорируется;
  • если в field_data содержится год или его можно извлечь, то сравниваются года изданий (раньше-позже в зависимости от "serial_desc" или "serial_asc;
  • если в field_data года одинаковые, ищется field_volume. Если field_volume существует в обоих документах, сравниваются больше-меньше;
  • если field_volume не существует или том у документов одинаков, сравнивается field_issue;
  • если field_issue одинаковы, то сравнивается field_is_fragments. Причем фрагменты сравниваются всегда от меньшего к большему, т.е. не зависимо от правила "serial_desc" и "serial_asc", фрагменты упорядочиваются от первой страницы к последней;
  • если field_data, field_volume, field_issue, field_is_fragments у сравниваемых документов одинаковы, правило игнорируется.

Пример работы сортировки: https://elis.psu.ru/statmethods

Пример упорядочивания по страницам, когда в одной папке field_data, field_volume, field_issue у всех документов одинаковые т.к. в папке размещен только один выпуск, а страницы разные: https://elis.psu.ru/node/412039

Т.о. простое указание правила сортировки "serial" позволяет упорядочить сериальные издания привычным для отображения образом.

Некорректная работа сортировки[править]

Если вы видите, что сортировка по правилу "serial" или "serial_asc" работает не так, как вы ожидаете, убедитесь, что у всех ресурсов поля относящиеся к серии заполнены корректно. Так если есть у одного издания заполнен field_volume, значит это поле должно быть у всех сортируемых документов. Также убедитесь, что у всех сортируемых элементов задана серия в field_serial. Если для каких-то единичных документов правило описания будет нарушено, он может оказаться в случайном месте. Т.о. если вы видите, что какой-то документ находится в неожиданной позиции, проверьте насколько полно для него и его соседей записаны метаданные.