From: Mike Rylander Date: Wed, 3 Feb 2016 18:34:35 +0000 (-0500) Subject: LP#1549505: Surface popularity from the search query X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=9198dbbceb4312e0033ad8432faad43c67e0e816;p=working%2FEvergreen.git LP#1549505: Surface popularity from the search query Signed-off-by: Mike Rylander Signed-off-by: Galen Charlton --- diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm index 851f876b59..3ac53e1984 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm @@ -912,7 +912,8 @@ SELECT $key AS id, $rel AS rel, $rank AS rank, FIRST(pubdate_t.value) AS tie_break - STRING_AGG(ARRAY_TO_STRING(pop_with.badges,','),',') AS badges + STRING_AGG(ARRAY_TO_STRING(pop_with.badges,','),',') AS badges, + AVG(COALESCE(pop_with.total_score::NUMERIC,0.0))::NUMERIC(2,1) AS popularity FROM metabib.metarecord_source_map m $$flat_plan{from} $mra_join diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm index 8d3d3bfa54..f30b4d9f27 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/metabib.pm @@ -3068,6 +3068,7 @@ sub query_parser_fts { delete $$summary_row{rel}; delete $$summary_row{record}; delete $$summary_row{badges}; + delete $$summary_row{popularity}; if (defined($simple_plan)) { $$summary_row{complex_query} = $simple_plan ? 0 : 1; diff --git a/Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql b/Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql index 87fe189443..9dbbfe52b3 100644 --- a/Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql +++ b/Open-ILS/src/sql/Pg/upgrade/YYYY.function.qp_search.sql @@ -17,7 +17,7 @@ BEGIN; -ALTER TYPE search.search_result ADD ATTRIBUTE badges TEXT; +ALTER TYPE search.search_result ADD ATTRIBUTE badges TEXT, ADD ATTRIBUTE popularity NUMERIC; CREATE OR REPLACE FUNCTION search.query_parser_fts ( @@ -146,6 +146,7 @@ BEGIN current_res.id = core_result.id; current_res.rel = core_result.rel; current_res.badges = core_result.badges; + current_res.popularity = core_result.popularity; tmp_int := 1; IF metarecord THEN @@ -182,6 +183,7 @@ BEGIN current_res.id = core_result.id; current_res.rel = core_result.rel; current_res.badges = core_result.badges; + current_res.popularity = core_result.popularity; tmp_int := 1; IF metarecord THEN @@ -351,6 +353,7 @@ BEGIN current_res.id = core_result.id; current_res.rel = core_result.rel; current_res.badges = core_result.badges; + current_res.popularity = core_result.popularity; tmp_int := 1; IF metarecord THEN @@ -375,6 +378,7 @@ BEGIN current_res.rel = NULL; current_res.record = NULL; current_res.badges = NULL; + current_res.popularity = NULL; current_res.total = total_count; current_res.checked = check_count; current_res.deleted = deleted_count;