3 SELECT evergreen.upgrade_deps_block_check('0958', :eg_version);
5 CREATE OR REPLACE FUNCTION search.facets_for_record_set(ignore_facet_classes TEXT[], hits BIGINT[]) RETURNS TABLE (id INT, value TEXT, count BIGINT) AS $$
6 SELECT id, value, count FROM (
7 SELECT mfae.field AS id,
9 COUNT(DISTINCT mmrsm.source),
11 PARTITION BY mfae.field ORDER BY COUNT(distinct mmrsm.source) DESC
13 FROM metabib.facet_entry mfae
14 JOIN metabib.metarecord_source_map mmrsm ON (mfae.source = mmrsm.source)
15 JOIN config.metabib_field cmf ON (cmf.id = mfae.field)
16 WHERE mmrsm.source IN (SELECT * FROM unnest($2))
18 AND cmf.field_class NOT IN (SELECT * FROM unnest($1))
21 WHERE rownum <= (SELECT COALESCE((SELECT value::INT FROM config.global_flag WHERE name = 'search.max_facets_per_field' AND enabled), 1000));
24 CREATE OR REPLACE FUNCTION search.facets_for_metarecord_set(ignore_facet_classes TEXT[], hits BIGINT[]) RETURNS TABLE (id INT, value TEXT, count BIGINT) AS $$
25 SELECT id, value, count FROM (
26 SELECT mfae.field AS id,
28 COUNT(DISTINCT mmrsm.metarecord),
30 PARTITION BY mfae.field ORDER BY COUNT(distinct mmrsm.metarecord) DESC
32 FROM metabib.facet_entry mfae
33 JOIN metabib.metarecord_source_map mmrsm ON (mfae.source = mmrsm.source)
34 JOIN config.metabib_field cmf ON (cmf.id = mfae.field)
35 WHERE mmrsm.metarecord IN (SELECT * FROM unnest($2))
37 AND cmf.field_class NOT IN (SELECT * FROM unnest($1))
40 WHERE rownum <= (SELECT COALESCE((SELECT value::INT FROM config.global_flag WHERE name = 'search.max_facets_per_field' AND enabled), 1000));
43 INSERT INTO config.global_flag (name, value, label, enabled)
45 'search.max_facets_per_field',
48 'search.max_facets_per_field',
49 'Search: maximum number of facet values to retrieve for each facet field',