From: Josh Stompro Date: Fri, 12 Aug 2022 16:17:30 +0000 (-0500) Subject: LP#1986086 - Include Guardian data in name keyword index X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=refs%2Fheads%2Fuser%2Fstompro%2Flp1986086_add_guardian_name_keyword;p=working%2FEvergreen.git LP#1986086 - Include Guardian data in name keyword index Add the au.guardian field data into the name keyword index to allow easier access to the guardian data. Signed-off-by: Josh Stompro --- diff --git a/Open-ILS/src/sql/Pg/005.schema.actors.sql b/Open-ILS/src/sql/Pg/005.schema.actors.sql index b18a33cf6f..a6bd730823 100644 --- a/Open-ILS/src/sql/Pg/005.schema.actors.sql +++ b/Open-ILS/src/sql/Pg/005.schema.actors.sql @@ -181,7 +181,9 @@ BEGIN COALESCE(NEW.pref_family_name, '') || ' ' || COALESCE(evergreen.unaccent_and_squash(NEW.pref_family_name), '') || ' ' || COALESCE(NEW.pref_suffix, '') || ' ' || - COALESCE(NEW.name_keywords, '') + COALESCE(NEW.name_keywords, '') || ' ' || + COALESCE(NEW.guardian, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.guardian), '') ); RETURN NEW; END; diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.name-keyword-parent-guardian.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.name-keyword-parent-guardian.sql new file mode 100644 index 0000000000..00da540133 --- /dev/null +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.name-keyword-parent-guardian.sql @@ -0,0 +1,53 @@ +BEGIN; + +--SELECT evergreen.upgrade_deps_block_check('xxxx', :eg_version); + +-- Update keyword indexes for existing patrons that have guardian data + +UPDATE actor.usr SET name_kw_tsvector = + TO_TSVECTOR( + COALESCE(prefix, '') || ' ' || + COALESCE(first_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(first_given_name), '') || ' ' || + COALESCE(second_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(second_given_name), '') || ' ' || + COALESCE(family_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(family_name), '') || ' ' || + COALESCE(suffix, '') || ' ' || + COALESCE(name_keywords, '') || ' ' || + COALESCE(guardian, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(guardian), '') + ) +WHERE +(guardian is not null or guardian != '') +; + +CREATE OR REPLACE FUNCTION actor.user_ingest_name_keywords() + RETURNS TRIGGER AS $func$ +BEGIN + NEW.name_kw_tsvector := TO_TSVECTOR( + COALESCE(NEW.prefix, '') || ' ' || + COALESCE(NEW.first_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.first_given_name), '') || ' ' || + COALESCE(NEW.second_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.second_given_name), '') || ' ' || + COALESCE(NEW.family_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.family_name), '') || ' ' || + COALESCE(NEW.suffix, '') || ' ' || + COALESCE(NEW.pref_prefix, '') || ' ' || + COALESCE(NEW.pref_first_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.pref_first_given_name), '') || ' ' || + COALESCE(NEW.pref_second_given_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.pref_second_given_name), '') || ' ' || + COALESCE(NEW.pref_family_name, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.pref_family_name), '') || ' ' || + COALESCE(NEW.pref_suffix, '') || ' ' || + COALESCE(NEW.name_keywords, '') || ' ' || + COALESCE(NEW.guardian, '') || ' ' || + COALESCE(evergreen.unaccent_and_squash(NEW.guardian), '') + ); + RETURN NEW; +END; +$func$ LANGUAGE PLPGSQL; + +COMMIT;