And don't forget about faceting (and now grouping) that are dependent upon the
result set being entirely set within the query component.
So if you're client-side filtering out docs.... your facet counts could be way
wrong (and again, also grouping).
Erik
On Mar 17, 2011, at 20:57 , Chris Hostetter wrote:
>
>
> : In order to paint "Next" links app would have to know total number of
> : records that user is eligible for read. getNumFound() will tell me that
> : there are total 4K records that Solr returned. If there wasn't any
> : entitlement rules then it could have been easier to determine how many
> : "Next" links to paint and when user clicks on "Next" pass in "start"
> : position appropriately in solr query. Since I have to apply post filter as
> : and when results are fetched from Solr is there a better way to achieve
>
> In an ideal world, you would do this using a custom plugin -- either a
> SearchComponent or a QParser used i na filter query.
>
> if you really have to do this client side, then a few basic rules come to
> mind...
>
> 1) allways over request. if you estimate that your user can only fiew 1/X
> docs in your total collection, and you want ot show Y results per page,
> then your rows param should be at least 2*X*Y (i picked 2 just for good
> measure, just because you know the average doesn't mean you know the real
> distrobution)
>
> 2) however many rows you get back, you need to keep track of the "real"
> start param you used, and at what in the current page you had enough docs
> to show the user -- that will determine your next "start" param.
>
> 3) wether you have a "next" link or not depends on:
> 3a) wether you had any left over the first time you over requested (see
> #2 above)
> 3b) wether numFound was greater then the index of the last item you got.
> ...if 3a and 3b are both false, you definitley don't need a "next" link.
> if either of them is true then you probably *should* give them a next
> link, but you still need to be prepared for the possibility that you won't
> have any more docs (they might only be half way through the result set,
> but every remaining doc might be something they arne't allowed to see)
>
> there's really no clean way to avoid the possibility completley, unless
> you really crank up how agressively you over request -- ultimatley if you
> over request *all* matches, then you can know definitively wether to give
> them a next link at any point.
>
> -Hoss