Hello, David.
Having 1 as a score is a good idea.

On Sun, May 17, 2020 at 7:25 PM David Smiley <[email protected]> wrote:

> I see some inconsistency in what some "constant scoring queries" return
> for a score.  Ultimately, I'm arguing here for consistency in 9.0, and
> perhaps a bit of documentation clarity on such Queries.  It's an edge-case
> because typical constant scoring queries are used
> with org.apache.lucene.search.BooleanClause.Occur#FILTER or similar where
> it simply doesn't matter.  But nonetheless it's possible to combine it with
> other queries in a BooleanQuery and the choice has an impact.
>
> Lucene's ConstantScoreQuery yields 1 but it can be boosted (e.g.
> multiplied by whatever).  Many other constant scoring queries in Lucene do
> likewise by using ConstantScoreWeight and propagating the "boost"
> parameter.  Picking one query at random doing this
> is DocValuesFieldExistsQuery.
>
> However, I found some that choose 0 which isn't boostablle (because zero
> times anything is zero). ToParentBlockJoinQuery (and Child equivalent) use
> 0.  Solr's Filter.java (formerly in Lucene), which I'm slowly removing,
> chooses 0 as well.
>
> Shall we standardize on a score of 1 for Lucene/Solr 9.0?  Or 0?  Or do
> some queries break with the norm for a good reason?
>
> ~ David Smiley
> Apache Lucene/Solr Search Developer
> http://www.linkedin.com/in/davidwsmiley
>


-- 
Sincerely yours
Mikhail Khludnev

Reply via email to