Just a bit more information.  Inside my class which extends
FilteredDocIdSet all of the time seems to be getting spent in
retrieving the document from the readerCtx, doing this

Document doc = readerCtx.reader.document(docid);

If I comment out this and just return true things fly along as I
expect.  My query is returning a total of 2 million documents also.

On Sun, Aug 28, 2011 at 11:39 AM, Jamie Johnson <jej2...@gmail.com> wrote:
> I have a need to post process Solr results based on some access
> controls which are setup outside of Solr, currently we've written
> something that extends SearchComponent and in the prepare method I'm
> doing something like this
>
>                    QueryWrapperFilter qwf = new
> QueryWrapperFilter(rb.getQuery());
>                    Filter filter = new CustomFilter(qwf);
>                    FilteredQuery fq = new FilteredQuery(rb.getQuery(), 
> filter);
>                    rb.setQuery(fq);
>
> Inside my CustomFilter I have a FilteredDocIdSet which checks if the
> document should be returned.  This works as I expect but for some
> reason is very very slow.  Even if I take out any of the machinery
> which does any logic with the document and only return true in the
> FilteredDocIdSets match method the query still takes an inordinate
> amount of time as compared to not including this custom filter.  So my
> question, is this the most appropriate way of handling this?  What
> should the performance out of such a setup be expected to be?  Any
> information/pointers would be greatly appreciated.
>

Reply via email to