]> git.evergreen-ils.org Git - working/Evergreen.git/blob - docs/RELEASE_NOTES_NEXT/OPAC/Multi_Valued_fields.txt
Grab an up-to-date relator code list. Thanks, LoC!
[working/Evergreen.git] / docs / RELEASE_NOTES_NEXT / OPAC / Multi_Valued_fields.txt
1 Multi-valued Record Attributes and Controlled Record Attributes
2 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3
4 Having identified common use cases and reasonable restrictions that can be
5 placed on the feature set, we have extended the Record Attribute
6 infrastructure to support both the extraction and storage of all instances
7 of a defined Attribute found within a bibliographic record, as well as
8 provide new and more powerful indexing of existing data, in several ways.
9
10 Record Attributes can now be defined by configuration as either single-valued
11 or multi-valued. For any Attribute configured as single-valued, only the
12 first value extracted from a record will be stored. This configuration
13 parameter and restriction is in place to support potential query
14 optimizations based on foreknowledge of whether a given Attribute is multi-
15 valued or not.
16
17 Record Attributes will be defined by configuration as either controlled or
18 uncontrolled. A controlled Record Attribute is one that has entries in the
19 Coded Value Map infrastructure specifying the valid values the record may
20 carry for this attribute. If defined as a controlled Attribute, any unknown
21 values extracted from a record will be ignored. Uncontrolled Attributes,
22 however, may contain any value. This configuration parameter and restriction
23 also supports potential query optimization.
24
25 We store uncontrolled attribute values in a new table with a monotonically
26 decreasing ID sequence, separating it from controlled values, reducing storage
27 requirements by retaining only unique values, and making lookup faster.
28
29 Restrictions
30 ++++++++++++
31
32  * A Record Attribute's values must match Coded Value Map entries if it is to be a Controlled Attribute. Coded Value Map control is indicated by a new "controlled" boolean on the config.record_attr_definition table.
33  * Record Attributes must "opt in" to multi-valued-ness. Record Attributes will opt in via a new "multi" boolean on config.record_attr_definition; this restriction enforces site config requirements by being explicit about the definition of "multi" fields.
34  * If controlled but not opt'd in to multi-mode, only the first value will be recorded but the new search mechanism will be used.
35  * Only single-valued Record Attributes will be available for use by the system as Sort Axes.
36  * Only controlled Record Attributes will be available for use by the TPAC as dynamically generated filter UI components, such as filter dropdowns or multi-selects.
37
38 New External Dependency
39 +++++++++++++++++++++++
40
41 This new feature requires the addition of the intarray extension to Postgres.
42 This is a stock extension available on most linux distributions via the same
43 package as the already-required plperl extension.
44
45