Tweak 0877 upgrade file for 2.5
authorDan Wells <dbw2@calvin.edu>
Thu, 17 Apr 2014 17:00:25 +0000 (13:00 -0400)
committerDan Wells <dbw2@calvin.edu>
Thu, 17 Apr 2014 17:00:25 +0000 (13:00 -0400)
The 0877 upgrade file for 2.6 lacked in parsimony because it assumed
it would generally run as part of the 2.6.0 upgrade, and that required
a full reingest anyway.

Credit for this "quick" version goes to Mike Rylander.

Signed-off-by: Dan Wells <dbw2@calvin.edu>
Signed-off-by: Remington Steed <rjs7@calvin.edu>
Open-ILS/src/sql/Pg/upgrade/0877.data.re-add_800_t_search_and_facets.sql

index ddab41d..2200d94 100644 (file)
@@ -16,10 +16,45 @@ INSERT INTO config.metabib_field ( id, field_class, name, label, format, xpath,
 
 COMMIT;
 
-\qecho This is a full field-entry reingest of your bib records.
-\qecho It will take a while.
-\qecho You may cancel now without losing the effect of the rest of the
-\qecho upgrade script, and arrange the reingest later.
+\qecho ---------------------------------------------------------------
+\qecho We will now do a "quick fix" indexing of series titles for search.
 \qecho .
-SELECT COUNT(metabib.reingest_metabib_field_entries(id))
-    FROM biblio.record_entry WHERE deleted IS FALSE;
+\qecho Ultimately, a full field-entry reingest of your affected series bib
+\qecho records should be done.  It might take a while.
+\qecho Something like this should suffice:
+\qecho ---------------------------------------------------------------
+\qecho 'SELECT COUNT(metabib.reingest_metabib_field_entries(id))'
+\qecho '    FROM ('
+\qecho '        SELECT DISTINCT(bre.id) AS id'
+\qecho '        FROM biblio.record_entry bre'
+\qecho '        JOIN metabib.full_rec mfr'
+\qecho '            ON mfr.record = bre.id'
+\qecho '            AND mfr.tag IN (\'490\', \'800\', \'810\', \'811\', \'830\')'
+\qecho '        WHERE'
+\qecho '            bre.deleted IS FALSE'
+\qecho '            AND ('
+\qecho '                mfr.tag = \'490\' AND mfr.subfield = \'a\''
+\qecho '                OR mfr.tag IN (\'800\',\'810\',\'811\') AND mfr.subfield = \'t\''
+\qecho '                OR mfr.tag = \'830\' AND mfr.subfield IN (\'a\',\'t\')'
+\qecho '            )'
+\qecho '    ) x'
+\qecho ';'
+\qecho ---------------------------------------------------------------
+
+-- "Quick Fix" indexing of series for search
+INSERT INTO metabib.series_field_entry (field,source,value)
+    SELECT 1,record,value FROM metabib.full_rec WHERE tag = '490' AND subfield = 'a';
+
+INSERT INTO metabib.series_field_entry (field,source,value)
+    SELECT 1,record,value FROM metabib.full_rec WHERE tag IN ('800','810','811') AND subfield = 't';
+
+INSERT INTO metabib.series_field_entry (field,source,value)
+    SELECT 1,record,value FROM metabib.full_rec WHERE tag = '830' AND subfield IN ('a','t');
+
+DELETE FROM metabib.combined_series_field_entry;
+INSERT INTO metabib.combined_series_field_entry(record, metabib_field, index_vector)
+       SELECT source, field, strip(COALESCE(string_agg(index_vector::TEXT,' '),'')::tsvector)
+       FROM metabib.series_field_entry GROUP BY source, field;
+INSERT INTO metabib.combined_series_field_entry(record, index_vector)
+       SELECT source, strip(COALESCE(string_agg(index_vector::TEXT,' '),'')::tsvector)
+       FROM metabib.series_field_entry GROUP BY source;