You may be able to do something along the lines of PayloadScoreQuery?  That 
overrides the scorer to factor in the value of payloads at each position.  In 
fact, a generic PositionScoringQuery would be a nice addition to the span 
queries.

Alan Woodward
www.flax.co.uk


On 17 Dec 2015, at 13:58, Markus Jelsma wrote:

> Hello Adrian,
> 
> I haven't implemented rewrite at all. I think something else is wrong in my 
> approach and adding to the confusion. I override protected AcceptStatus 
> acceptPosition(Spans spans). In there, i conditionally call setBoost() myself 
> because originally i wanted to decrease the boost for each subsequent call to 
> acceptPosition (meaning AcceptStatus.NO is returned). Because of LUCENE-6590, 
> and as i understand from other discussions, you guys wanted Query to be 
> immutable so i should not change the setBoost.
> 
> How can i now, change the boost conditionally from inside acceptPosition()? 
> Is rewrite going to be called at some point where i can return a new Query 
> object with decreased boost?
> 
> Thanks,
> Markus
> 
> -----Original message-----
>> From:Adrien Grand <jpou...@gmail.com>
>> Sent: Thursday 17th December 2015 14:40
>> To: solr-user <solr-u...@lucene.apache.org>; java-user@lucene.apache.org
>> Subject: Re: propagate Query.rewrite call to super.rewrite after 5.4 upgrade
>> 
>> Hi Markus,
>> 
>> This is indeed related to LUCENE-6590: query boosts are now applied with
>> BoostQuery and if Query.setBoost is called on a query, its rewrite
>> implementation needs to rewrite to a BoostQuery. You can do that by
>> prepending the following to your rewrite(IndexReader) implementation:
>> 
>> if (getBoost() != 1f) { return super.rewrite(reader); }
>> 
>> 
>> Le jeu. 17 déc. 2015 à 13:23, Markus Jelsma <markus.jel...@openindex.io> a
>> écrit :
>> 
>>> Hi,
>>> 
>>> Apologies for the cross post. We have a class overridding
>>> SpanPositionRangeQuery. It is similar to a SpanFirst query but it is
>>> capable of adjusting the boost value with regard to distance. With the 5.4
>>> upgrade the unit tests suddenly threw the following exception:
>>> 
>>> Query class org.GrSpanFirstQuery does not propagate Query.rewrite call to
>>> super.rewrite
>>>        at
>>> __randomizedtesting.SeedInfo.seed([CA3D7CF96D5E8E7:88BE883E6CA09E3F]:0)
>>>        at junit.framework.Assert.fail(Assert.java:57)
>>>        at junit.framework.Assert.assertTrue(Assert.java:22)
>>>        at org.apache.lucene.search.QueryUtils.check(QueryUtils.java:73)
>>>        at
>>> org.apache.lucene.search.AssertingIndexSearcher.rewrite(AssertingIndexSearcher.java:83)
>>>        at
>>> org.apache.lucene.search.IndexSearcher.createNormalizedWeight(IndexSearcher.java:886)
>>>        at
>>> org.apache.lucene.search.AssertingIndexSearcher.createNormalizedWeight(AssertingIndexSearcher.java:58)
>>>        at
>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:535)
>>>        at
>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:744)
>>>        at
>>> org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:460)
>>>        at
>>> org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:489)
>>> 
>>> I tracked it down to LUCENE-6590 - Explore different ways to apply boosts,
>>> but the solution did not really pop in my head right away. Implementing
>>> rewrite does not seem to change anything. Everything fails in the unit test
>>> at the point i want to retrieve docs and assert their positions in the
>>> result set: ScoreDoc[] docs = searcher.search(spanfirstquery, 10).scoreDocs;
>>> 
>>> I am probably missing something but any ideas to share?
>>> 
>>> Many thanks!
>>> Markus
>>> 
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
>>> For additional commands, e-mail: java-user-h...@lucene.apache.org
>>> 
>>> 
>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-user-h...@lucene.apache.org
> 

Reply via email to