>From the Collector context, I suppose I can access the FileFloatSource directly like this, although it's not generic:
SchemaField field = indexSearcher.getSchema().getField(fieldName); dataDir = indexSearcher.getSchema().getResourceLoader().getDataDir(); ExternalFileField eff = (ExternalFileField)field.getType(); fieldValues = eff.getFileFloatSource(field, dataDir); And then read the values in 'setNextReader' Peter On Wed, Dec 11, 2013 at 2:05 PM, Peter Keegan <peterlkee...@gmail.com>wrote: > Hi Joel, > > I thought about using a PostFilter, but the problem is that the 'scale' > function must be done after all matching docs have been scored but before > adding them to the PriorityQueue that sorts just the rows to be returned. > Doing the 'scale' function wrapped in a 'query' is proving to be too slow > when it visits every document in the index. > > In the Collector, I can see how to get the field values like this: > indexSearcher.getSchema().getField("field(myfield").getType().getValueSource(SchemaField, > QParser).getValues() > > But, 'getValueSource' needs a QParser, which isn't available. > And I can't create a QParser without a SolrQueryRequest, which isn't > available. > > Thanks, > Peter > > > On Wed, Dec 11, 2013 at 1:48 PM, Joel Bernstein <joels...@gmail.com>wrote: > >> Peter, >> >> It sounds like you could achieve what you want to do in a PostFilter >> rather >> then extending the TopDocsCollector. Is there a reason why a PostFilter >> won't work for you? >> >> Joel >> >> >> On Tue, Dec 10, 2013 at 3:24 PM, Peter Keegan <peterlkee...@gmail.com >> >wrote: >> >> > Quick question: >> > In the context of a custom collector, how does one get the values of a >> > field of type 'ExternalFileField'? >> > >> > Thanks, >> > Peter >> > >> > >> > On Tue, Dec 10, 2013 at 1:18 PM, Peter Keegan <peterlkee...@gmail.com >> > >wrote: >> > >> > > Hi Joel, >> > > >> > > This is related to another thread on function query matching ( >> > > >> > >> http://lucene.472066.n3.nabble.com/Function-query-matching-td4099807.html#a4105513 >> > ). >> > > The patch in SOLR-4465 will allow me to extend TopDocsCollector and >> > perform >> > > the 'scale' function on only the documents matching the main dismax >> > query. >> > > As you mention, it is a slightly intrusive design and requires that I >> > > manage my own PriorityQueue (and a local duplicate of HitQueue), but >> > should >> > > work. I think a better design would hide the PQ from the plugin. >> > > >> > > Thanks, >> > > Peter >> > > >> > > >> > > On Sun, Dec 8, 2013 at 5:32 PM, Joel Bernstein <joels...@gmail.com> >> > wrote: >> > > >> > >> Hi Peter, >> > >> >> > >> I've been meaning to revisit configurable ranking collectors, but I >> > >> haven't >> > >> yet had a chance. It's on the shortlist of things I'd like to tackle >> > >> though. >> > >> >> > >> >> > >> >> > >> On Fri, Dec 6, 2013 at 4:17 PM, Peter Keegan <peterlkee...@gmail.com >> > >> > >> wrote: >> > >> >> > >> > I looked at SOLR-4465 and SOLR-5045, where it appears that there >> is a >> > >> goal >> > >> > to be able to do custom sorting and ranking in a PostFilter. So >> far, >> > it >> > >> > looks like only custom aggregation can be implemented in PostFilter >> > >> (5045). >> > >> > Custom sorting/ranking can be done in a pluggable collector (4465), >> > but >> > >> > this patch is no longer in dev. >> > >> > >> > >> > Is there any other dev. being done on adding custom sorting (after >> > >> > collection) via a plugin? >> > >> > >> > >> > Thanks, >> > >> > Peter >> > >> > >> > >> >> > >> >> > >> >> > >> -- >> > >> Joel Bernstein >> > >> Search Engineer at Heliosearch >> > >> >> > > >> > > >> > >> >> >> >> -- >> Joel Bernstein >> Search Engineer at Heliosearch >> > >