add agency-stripping and btrim normalizers; add identifier|arcn index def as facet
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 24 Jun 2010 16:57:30 +0000 (16:57 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Thu, 24 Jun 2010 16:57:30 +0000 (16:57 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/trunk@16806 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/002.schema.config.sql
Open-ILS/src/sql/Pg/020.schema.functions.sql
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/upgrade/0315.data.authority-related-index-normalizers.sql [new file with mode: 0644]

index bec6a0c..42ad02f 100644 (file)
@@ -68,7 +68,7 @@ CREATE TABLE config.upgrade_log (
     install_date    TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW()
 );
 
-INSERT INTO config.upgrade_log (version) VALUES ('0314'); -- atz
+INSERT INTO config.upgrade_log (version) VALUES ('0315'); -- miker
 
 CREATE TABLE config.bib_source (
        id              SERIAL  PRIMARY KEY,
index 965d9a2..29d2d6a 100644 (file)
@@ -100,6 +100,10 @@ CREATE OR REPLACE FUNCTION public.remove_commas( TEXT ) RETURNS TEXT AS $$
     SELECT regexp_replace($1, ',', '', 'g');
 $$ LANGUAGE SQL STRICT IMMUTABLE;
 
+CREATE OR REPLACE FUNCTION public.remove_paren_substring( TEXT ) RETURNS TEXT AS $$
+    SELECT regexp_replace($1, $$\([^)]+\)$$, '', 'g');
+$$ LANGUAGE SQL STRICT IMMUTABLE;
+
 CREATE OR REPLACE FUNCTION public.remove_whitespace( TEXT ) RETURNS TEXT AS $$
     SELECT regexp_replace(normalize_space($1), E'\\s+', '', 'g');
 $$ LANGUAGE SQL STRICT IMMUTABLE;
index b86ae19..7a61831 100644 (file)
@@ -82,6 +82,8 @@ INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath )
     (24, 'identifier', 'sici', oils_i18n_gettext(24, 'SICI', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='024' and ind1='4']/marc:subfield[@code='a' or @code='z']$$ );
 INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath ) VALUES
     (25, 'identifier', 'bibcn', oils_i18n_gettext(25, 'Local Free-Text Call Number', 'cmf', 'label'), 'marcxml', $$//marc:datafield[@tag='099']//text()$$ );
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field, search_field ) VALUES
+    (26, 'identifier', 'arcn', oils_i18n_gettext(26, 'Authority record control number', 'cmf', 'label'), 'marcxml', $$//marc:subfield[@code='0']$$, TRUE, FALSE );
 
 SELECT SETVAL('config.metabib_field_id_seq'::TEXT, (SELECT MAX(id) FROM config.metabib_field), TRUE);
 
@@ -4171,6 +4173,13 @@ INSERT INTO config.index_normalizer (name, description, func, param_count) VALUE
 );
 
 INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
+       'Remove Parenthesized Substring',
+       'Remove any parenthesized substrings from the extracted text, such as the agency code preceding authority record control numbers in subfield 0.',
+       'remove_paren_substring',
+       0
+);
+
+INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
        'Up-case',
        'Convert text upper case.',
        'uppercase',
@@ -4226,6 +4235,13 @@ INSERT INTO config.index_normalizer (name, description, func, param_count) VALUE
        2
 );
 
+INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
+       'Trim Surrounding Space',
+       'Trim leading and trailing spaces from extracted text.',
+       'btrim',
+       0
+);
+
 -- make use of the index normalizers
 
 INSERT INTO config.metabib_field_index_norm_map (field,norm)
@@ -4272,6 +4288,14 @@ INSERT INTO config.metabib_field_index_norm_map (field,norm,params)
       WHERE i.func IN ('replace')
             AND m.id IN (19);
 
+INSERT INTO config.metabib_field_index_norm_map (field,norm)
+    SELECT  m.id,
+            i.id,
+      FROM  config.metabib_field m,
+            config.index_normalizer i
+      WHERE i.func IN ('btrim','remove_paren_substring')
+            AND m.id IN (26);
+
 -- claims returned mark item missing 
 INSERT INTO
     config.org_unit_setting_type ( name, label, description, datatype )
diff --git a/Open-ILS/src/sql/Pg/upgrade/0315.data.authority-related-index-normalizers.sql b/Open-ILS/src/sql/Pg/upgrade/0315.data.authority-related-index-normalizers.sql
new file mode 100644 (file)
index 0000000..4ec3315
--- /dev/null
@@ -0,0 +1,37 @@
+BEGIN;
+
+INSERT INTO config.upgrade_log (version) VALUES ('0315'); --miker
+
+CREATE OR REPLACE FUNCTION public.remove_paren_substring( TEXT ) RETURNS TEXT AS $$
+    SELECT regexp_replace($1, $$\([^)]+\)$$, '', 'g');
+$$ LANGUAGE SQL STRICT IMMUTABLE;
+
+INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath, facet_field, search_field ) VALUES
+    (26, 'identifier', 'arcn', oils_i18n_gettext(26, 'Authority record control number', 'cmf', 'label'), 'marcxml', $$//marc:subfield[@code='0']$$, TRUE, FALSE );
+SELECT SETVAL('config.metabib_field_id_seq'::TEXT, (SELECT MAX(id) FROM config.metabib_field), TRUE);
+INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
+       'Remove Parenthesized Substring',
+       'Remove any parenthesized substrings from the extracted text, such as the agency code preceding authority record control numbers in subfield 0.',
+       'remove_paren_substring',
+       0
+);
+
+INSERT INTO config.index_normalizer (name, description, func, param_count) VALUES (
+       'Trim Surrounding Space',
+       'Trim leading and trailing spaces from extracted text.',
+       'btrim',
+       0
+);
+
+INSERT INTO config.metabib_field_index_norm_map (field,norm)
+    SELECT  m.id,
+            i.id,
+      FROM  config.metabib_field m,
+            config.index_normalizer i
+      WHERE i.func IN ('btrim','remove_paren_substring')
+            AND m.id IN (26);
+
+COMMIT;
+