[
https://issues.apache.org/jira/browse/SOLR-5831?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14011402#comment-14011402
]
Peter Keegan commented on SOLR-5831:
------------------------------------
Hi Joel,
I'm not sure why I didn't see this problem until now, but this PostFilter
doesn't work after being cached. When the ScoreScaleFilter is retrieved from
the cache, the docSet is null and a new PostFilter collector is created, but
the Collector's 'setScorer' method isn't called. As a result, the 'collect'
method throws NPE (scorer.score()). What do I need to do to keep the query from
rerunning? Can the scorer be saved with the ScoreScaleFilter instead of the
ScoreCollector?
Thanks,
Peter
> Scale score PostFilter
> ----------------------
>
> Key: SOLR-5831
> URL: https://issues.apache.org/jira/browse/SOLR-5831
> Project: Solr
> Issue Type: Improvement
> Components: search
> Affects Versions: 4.7
> Reporter: Peter Keegan
> Assignee: Joel Bernstein
> Priority: Minor
> Fix For: 4.9
>
> Attachments: SOLR-5831.patch, SOLR-5831.patch, SOLR-5831.patch,
> SOLR-5831.patch, SOLR-5831.patch, TestScaleScoreQParserPlugin.patch
>
>
> The ScaleScoreQParserPlugin is a PostFilter that performs score scaling.
> This is an alternative to using a function query wrapping a scale() wrapping
> a query(). For example:
> select?qq={!edismax v='news' qf='title^2
> body'}&scaledQ=scale(product(query($qq),1),0,1)&q={!func}sum(product(0.75,$scaledQ),product(0.25,field(myfield)))&fq={!query
> v=$qq}
> The problem with this query is that it has to scale every hit. Usually, only
> the returned hits need to be scaled,
> but there may be use cases where the number of hits to be scaled is greater
> than the returned hit count,
> but less than or equal to the total hit count.
> Sample syntax:
> fq={!scalescore+l=0.0 u=1.0 maxscalehits=10000
> func=sum(product(sscore(),0.75),product(field(myfield),0.25))}
> l=0.0 u=1.0 //Scale scores to values between 0-1, inclusive
> maxscalehits=10000 //The maximum number of result scores to scale (-1 =
> all hits, 0 = results 'page' size)
> func=... //Apply the composite function to each hit. The
> scaled score value is accessed by the 'score()' value source
> All parameters are optional. The defaults are:
> l=0.0 u=1.0
> maxscalehits=0 (result window size)
> func=(null)
>
> Note: this patch is not complete, as it contains no test cases and may not
> conform
> to all the guidelines in http://wiki.apache.org/solr/HowToContribute.
>
> I would appreciate any feedback on the usability and implementation.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]