[ 
https://issues.apache.org/jira/browse/SOLR-1687?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12835075#action_12835075
 ] 

Hoss Man commented on SOLR-1687:
--------------------------------

Hmmm... QParser.getSort is where the current sort/start/rows param parsing 
happens right now, but looking at it makes me realize there's some local params 
semantics to consider with something like this.

Currently, QParser.getSort won't consult the global params if any of 
sort/start/rows are specified as a local param (or if the caller explicitly 
says useGlobalParams=false, but there doesn't seem to be a code path where that 
happens)

but what should happen in these situations...

{code}
#1) q={!lucene rows.max=9999999999 rows=9999}foo&rows.max=100
#2) q={!lucene rows.max=100 v=$qq}&qq=foo&rows=9999999&rows.max=99999999999
{code}

situation #1 could come up if a greedy client attempted to ask for too many 
rows, and the admin has a configured invariant of rows.max=100 -- in which case 
we'd want the global rows.max param to superseded the local rows param.  But 
situation #2 is equally possible where the q param is an invariant set by the 
admin, and the other params come from a greedy client.

The best situation i can think of off the top of my head would be to ignore 
local param values for start.max and rows.max, and look for them as global 
params even if false==useGlobalParams.  That takes care of situation #1, and 
makes situation #2 easy to deal with by also adding rows.max=100 as an 
invariant outside of the local params.

Anyone see any holes in that?

> add param for limiting start and rows params
> --------------------------------------------
>
>                 Key: SOLR-1687
>                 URL: https://issues.apache.org/jira/browse/SOLR-1687
>             Project: Solr
>          Issue Type: Improvement
>            Reporter: Hoss Man
>
> conventional wisdom is that it doesn't make sense to paginate with "huge" 
> pages, or to drill down "deep" into high numbered pages -- features like 
> faceting tend to be a better UI experience, and less intensive on solr.
> At the moment, Sold adminstrators can use "invariant" params to hardcode the 
> "rows" param to something reasonable, but unless they only want to allow 
> users to look at page one, the can't do much to lock down the "start" param 
> expect inforce these rules in the client code
> we should add new params that set an upper bound on both of these, which can 
> then be specified as default/invarient params in solrconfig.xml

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to