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. >