diff --git a/config/vufind/Summon.ini b/config/vufind/Summon.ini
index d1e311c13caebea9d422c7da229e528454d20e3c..c8d1cbef54dc6e8b53570e085208edabb3177021 100644
--- a/config/vufind/Summon.ini
+++ b/config/vufind/Summon.ini
@@ -122,7 +122,7 @@ queryExpansion:true = include_synonyms
 ;
 ; The name of the index field may optionally be followed by comma-separated
 ; parameters (i.e. ",or,1,15") as defined by the Summon API.  Any provided 
-; parameters will override defaults like the facet_limit setting in
+; parameters will override defaults like the facet_limit* settings in
 ; [Facet_Settings] below.
 [Facets]
 Library = Location
@@ -159,7 +159,10 @@ top_cols = 3
 
 ; These settings affect the way the facets are displayed
 [Facet_Settings]
-facet_limit        = 30     ; how many values should we show for each facet?
+; By default, how many values should we show for each facet?
+facet_limit = 30
+; Override facet_limit on a per-field basis using this array:
+;facet_limit_by_field[ContentType] = 50
 
 ; These facets will be displayed as limiters on the advanced screen
 [Advanced_Facets]
diff --git a/module/VuFind/src/VuFind/Search/Summon/Params.php b/module/VuFind/src/VuFind/Search/Summon/Params.php
index 10d9ea269526ec05cbdc9b609fb8c82737e8a210..40962ec706a30af84a5ffdae3af1285d0e18e7c8 100644
--- a/module/VuFind/src/VuFind/Search/Summon/Params.php
+++ b/module/VuFind/src/VuFind/Search/Summon/Params.php
@@ -200,6 +200,8 @@ class Params extends \VuFind\Search\Base\Params
         $config = $this->getServiceLocator()->get('VuFind\Config')->get('Summon');
         $defaultFacetLimit = isset($config->Facet_Settings->facet_limit)
             ? $config->Facet_Settings->facet_limit : 30;
+        $fieldSpecificLimits = isset($config->Facet_Settings->facet_limit_by_field)
+            ? $config->Facet_Settings->facet_limit_by_field : null;
 
         $finalFacets = [];
         foreach ($this->getFullFacetSettings() as $facet) {
@@ -207,10 +209,12 @@ class Params extends \VuFind\Search\Base\Params
             // if not, override them with defaults.
             $parts = explode(',', $facet);
             $facetName = $parts[0];
+            $bestDefaultFacetLimit = isset($fieldSpecificLimits->$facetName)
+                ? $fieldSpecificLimits->$facetName : $defaultFacetLimit;
             $defaultMode = ($this->getFacetOperator($facet) == 'OR') ? 'or' : 'and';
             $facetMode = isset($parts[1]) ? $parts[1] : $defaultMode;
             $facetPage = isset($parts[2]) ? $parts[2] : 1;
-            $facetLimit = isset($parts[3]) ? $parts[3] : $defaultFacetLimit;
+            $facetLimit = isset($parts[3]) ? $parts[3] : $bestDefaultFacetLimit;
             $facetParams = "{$facetMode},{$facetPage},{$facetLimit}";
             $finalFacets[] = "{$facetName},{$facetParams}";
         }