Часто для сериального издания заводится подкаталог, в котором размещаются по годам тома и выпуски.
Встает задача сортировки в зависимости от года, тома и выпуска таким образом, чтобы новые выпуски показывались в начале папки.
Для сортировки сериальных изданий в 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. Если для каких-то единичных документов правило описания будет нарушено, он может оказаться в случайном месте. Т.о. если вы видите, что какой-то документ находится в неожиданной позиции, проверьте насколько полно для него и его соседей записаны метаданные.