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

Reply via email to