From 6594c7c47da25243aab8b73efa7236cd3bebfe17 Mon Sep 17 00:00:00 2001 From: "Chris M. Hostetter" Date: Tue, 12 Sep 2006 23:11:58 +0000 Subject: [PATCH] small tweak: facet.limit now assumes a sensible default of 100 to prevent extreme amounts of data from being returned to a naive client. negative values for facet.limit force the limitless behavior git-svn-id: https://svn.apache.org/repos/asf/incubator/solr/trunk@442752 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/solr/request/SimpleFacets.java | 7 +++---- src/java/org/apache/solr/request/SolrParams.java | 7 +++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/java/org/apache/solr/request/SimpleFacets.java b/src/java/org/apache/solr/request/SimpleFacets.java index 789b6a2e416..c85091db600 100644 --- a/src/java/org/apache/solr/request/SimpleFacets.java +++ b/src/java/org/apache/solr/request/SimpleFacets.java @@ -182,10 +182,9 @@ public class SimpleFacets { Set> counts = new HashSet>(); - String limit = params.getFieldParam(fieldName, params.FACET_LIMIT); - if (null != limit) { - counts = new BoundedTreeSet> - (Integer.parseInt(limit)); + int limit = params.getFieldInt(fieldName, params.FACET_LIMIT, 100); + if (0 <= limit) { + counts = new BoundedTreeSet>(limit); } boolean zeros = params.getFieldBool(fieldName, params.FACET_ZEROS, true); diff --git a/src/java/org/apache/solr/request/SolrParams.java b/src/java/org/apache/solr/request/SolrParams.java index ceaab9ccada..f1ee757d5c4 100644 --- a/src/java/org/apache/solr/request/SolrParams.java +++ b/src/java/org/apache/solr/request/SolrParams.java @@ -160,6 +160,13 @@ public abstract class SolrParams { String val = get(param); return val==null ? def : Integer.parseInt(val); } + + /** Returns the int value of the field param, + or the value for param, or def if neither is set. */ + public int getFieldInt(String field, String param, int def) { + String val = getFieldParam(field, param); + return val==null ? def : Integer.parseInt(val); + } /** Returns the Float value of the param, or null if not set */ public Float getFloat(String param) {