Skip to end of banner
Go to start of banner

CallNumber Browse Refactoring

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Summary

Current situation or problem: In order to continue to build on call number browse functionality (including browsing by type and browsing by instance classification), we need to refactor the current implementation.

Business expectations

  • Easily navigate through large datasets.

    • For example, when the call number shares the first 10 characters of the shelving order.

  • Address preceding and succeeding navigation especially with large datasets.

    • Leaving first and last page handling exact and non-exact match

  • Address effective location facet issues

  • Address type-specific browsing issues (i.e. sorting and finding exact matches)

Technical expectations

  • Streamline code. Significantly decrease complexity of code to make it much easier to implement new enhancements.

Requirements

Functional Requirements

Call number browse requirements overview - DRAFT

Non-functional Requirements

[TBD: Create a NFR Page]

Assumptions

  • UXPROD-4892 - Getting issue details... STATUS is done and performance test results are satisfactory

Baseline Architecture

https://github.com/folio-org/mod-search/blob/master/doc/browsing.md#call-number-browsing

Target Architecture

Summary

  • In mod-search PostgreSQL DB

    • create a table for call numbers

    • on create/update/delete events for items create a new trigger that would extract call numbers and related items/instance

  • Adjust the Reindexing procedure and Ongoing domain events consuming for items

  • Create a separate index for call numbers

  • Refactor browse queries to use search_after search_before queries

Indexing Sequence Diagram

Browsing Sequence Diagram

Risks

  • No labels