3 -- Bring authorized headings into the symspell dictionary. Side
4 -- loader should be used for Real Sites. See below the COMMIT.
6 SELECT search.symspell_build_and_merge_entries(h.value, m.field_class, NULL)
7 FROM authority.simple_heading h
8 JOIN authority.control_set_auth_field_metabib_field_map_refs a ON (a.authority_field = a.atag)
9 JOIN config.metabib_field m ON (a.metabib_field=m.id);
12 CREATE OR REPLACE FUNCTION search.symspell_maintain_entries () RETURNS TRIGGER AS $f$
15 new_value TEXT := NULL;
16 old_value TEXT := NULL;
19 IF TG_TABLE_SCHEMA = 'authority' THEN
20 SELECT m.field_class INTO search_class
21 FROM authority.control_set_auth_field_metabib_field_map_refs a
22 JOIN config.metabib_field m ON (a.metabib_field=m.id)
23 WHERE a.authority_field = NEW.atag;
29 search_class := COALESCE(TG_ARGV[0], SPLIT_PART(TG_TABLE_NAME,'_',1));
32 IF TG_OP IN ('INSERT', 'UPDATE') THEN
33 new_value := NEW.value;
36 IF TG_OP IN ('DELETE', 'UPDATE') THEN
37 old_value := OLD.value;
40 PERFORM * FROM search.symspell_build_and_merge_entries(new_value, search_class, old_value);
42 RETURN NULL; -- always fired AFTER
46 CREATE TRIGGER maintain_symspell_entries_tgr
47 AFTER INSERT OR UPDATE OR DELETE ON authority.simple_heading
48 FOR EACH ROW EXECUTE PROCEDURE search.symspell_maintain_entries();
52 -- Generate symspell sideloader data with authority headings included.
60 select value from metabib.title_field_entry;
62 from authority.simple_heading h
63 join authority.control_set_auth_field_metabib_field_map_refs a on (a.authority_field = a.atag)
64 join config.metabib_field m on (a.metabib_field=m.id and m.field_class='title');
67 select value from metabib.author_field_entry;
69 from authority.simple_heading h
70 join authority.control_set_auth_field_metabib_field_map_refs a on (a.authority_field = a.atag)
71 join config.metabib_field m on (a.metabib_field=m.id and m.field_class='author');
74 select value from metabib.subject_field_entry;
76 from authority.simple_heading h
77 join authority.control_set_auth_field_metabib_field_map_refs a on (a.authority_field = a.atag)
78 join config.metabib_field m on (a.metabib_field=m.id and m.field_class='subject');
81 select value from metabib.series_field_entry;
84 select value from metabib.identifier_field_entry;
87 select value from metabib.keyword_field_entry;