Hi Bill,

This looks like an oversight on my part when migrating the payload scoring 
queries - can you open a JIRA ticket to add 'includeSpanScore' as an option to 
PayloadScoreQuery?

As a workaround, you should be able to use a custom similarity that returns 1 
for all scores (see IndexSearcher.NON_SCORING_SIMILARITY for an implementation 
that returns 0, you could just clone that and change SimScorer.score())

Alan Woodward
www.flax.co.uk


On 19 Oct 2015, at 00:39, William Bell wrote:

> Here is my first stab at it. Thoughts?
> 
> Question:
> 
> new PayloadTermQuery(new Term(nv[0].substring(1), nv[1]), new
> AveragePayloadFunction(), false)
> 
> How do I handle the "false"  ? It means boolean includeSpanScore
> 
> 
> @Override
> public Query parse() throws SyntaxError {
> 
>    if (qstr == null || qstr.length() == 0) return null;
>    //BooleanQuery q = new BooleanQuery();
>    BooleanQuery.Builder q = new BooleanQuery.Builder();
>    q.setDisableCoord(true);
>    if (qstr.length() > 1 && qstr.startsWith("\"") && qstr.endsWith("\"")) {
>        qstr = qstr.substring(1,qstr.length()-1);
>    }
>    String[] nvps = StringUtils.split(qstr, " ");
>    for (int i = 0; i < nvps.length; i++) {
>        String[] nv = StringUtils.split(nvps[i], ":");
>        if (nv.length > 1) {
>          if (nv[0].startsWith("+")) {
>              SpanTermQuery sq = new SpanTermQuery(new
> Term(nv[0].substring(1), nv[1]));
>              PayloadScoreQuery psq = new PayloadScoreQuery(sq, new
> AveragePayloadFunction());
>              q.add(psq, Occur.MUST);
>            //q.add(new PayloadTermQuery(new Term(nv[0].substring(1),
> nv[1]), new AveragePayloadFunction(), false), Occur.MUST);
>          } else {
>            //q.add(new PayloadTermQuery(new Term(nv[0], nv[1]), new
> AveragePayloadFunction(), false), Occur.SHOULD);
>              SpanTermQuery sq = new SpanTermQuery(new Term(nv[0], nv[1]));
>              PayloadScoreQuery psq = new PayloadScoreQuery(sq, new
> AveragePayloadFunction());
>              q.add(psq, Occur.SHOULD);
>          }
>        }
>    }
>    // return q;
>    return q.build();
> }
> 
> 
> On Sun, Oct 18, 2015 at 4:46 PM, William Bell <billnb...@gmail.com> wrote:
> 
>> Wondering how to change my payload based on example:
>> 
>> https://lucidworks.com/blog/2014/06/13/end-to-end-payload-example-in-solr/
>> 
>> PayloadTermQuery and BooleanQuery are deprecated in 5.3.x
>> 
>> @Override
>> public Query parse() throws SyntaxError {
>> 
>>    if (qstr == null || qstr.length() == 0) return null;
>>    BooleanQuery q = new BooleanQuery();
>>    if (qstr.length() > 1 && qstr.startsWith("\"") && qstr.endsWith("\"")) {
>>        qstr = qstr.substring(1,qstr.length()-1);
>>    }
>>    String[] nvps = StringUtils.split(qstr, " ");
>>    for (int i = 0; i < nvps.length; i++) {
>>        String[] nv = StringUtils.split(nvps[i], ":");
>>        if (nv.length > 1) {
>>          if (nv[0].startsWith("+")) {
>>            q.add(new PayloadTermQuery(new Term(nv[0].substring(1), nv[1]),
>>              new AveragePayloadFunction(), false), Occur.MUST);
>>          } else {
>>            q.add(new PayloadTermQuery(new Term(nv[0], nv[1]),
>>              new AveragePayloadFunction(), false), Occur.SHOULD);
>>          }
>>        }
>>    }
>>    return q;
>> }
>> 
>> 
>> --
>> Bill Bell
>> billnb...@gmail.com
>> cell 720-256-8076
>> 
> 
> 
> 
> -- 
> Bill Bell
> billnb...@gmail.com
> cell 720-256-8076

Reply via email to