...
In
mod-search
PostgreSQL DBcreate a table for call numbers
The following fields should be present in the table:
item_id
- item identifiereffective_callnumber_components
- set of components for a callnumbercallnumber
prefix
suffix
callnumber_type_id
volume
enumeration
chronology
copynumber
instance_arr
- jsonb field for storing the relation with instancesinstance_id
shared
tenant_id
on create/update/delete events for items create a new procedure that would extract call numbers from items
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
...
As per the current approach for reindexing the indexing of call numbers is split into two main phases: merge and upload. The merge phase is already present in the reindexing procedure.
Drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
The flag whether to extract and store call numbers should be stored in the database
The temporary table should be created inside of the procedure based on the main table
create temp table tmp_callnumber (like callnumber including indexes);
Insert from the temporary table into the main table should be ordered to avoid deadlocks on main table indices
Drawio | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...