[ 
https://issues.apache.org/jira/browse/LUCENE-1155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12630655#action_12630655
 ] 

Grant Ingersoll commented on LUCENE-1155:
-----------------------------------------

Sorry, I still don't get it, but I'm probably dense.  Maybe an actual example 
would help.

Next, it incs payloadsSeen when it hasn't, in fact, seen a payload.  That seems 
weird.

Second, why not just scale the results from 1 to 5 to be between 0 and 1 (and 
possibly just call Query.setBoost(5))?  That is, for the 1% of positions, make 
it range between 0.9 and 0.1 (or whatever).  

That being said, I suppose it doesn't hurt, but it just seems confusing.  If 
anything, I would rename the variable something like nullPayloadBoost or 
something else, as I think defaultTermBoost implies it's the default boost 
applied when there is a payload, but the boost isn't specified, which doesn't 
make sense either.

> BoostingTermQuery#defaultTermBoost
> ----------------------------------
>
>                 Key: LUCENE-1155
>                 URL: https://issues.apache.org/jira/browse/LUCENE-1155
>             Project: Lucene - Java
>          Issue Type: Improvement
>          Components: Search
>            Reporter: Karl Wettin
>            Priority: Trivial
>
> This patch allows a null payload to mean something different than 1f.
> (I have this use case where 99% of my tokens share the same rather large 
> token position payload boost.)
> {code}
> Index: src/java/org/apache/lucene/search/payloads/BoostingTermQuery.java
> ===================================================================
> --- src/java/org/apache/lucene/search/payloads/BoostingTermQuery.java   
> (revision 615215)
> +++ src/java/org/apache/lucene/search/payloads/BoostingTermQuery.java   
> (working copy)
> @@ -41,11 +41,16 @@
>   */
>  public class BoostingTermQuery extends SpanTermQuery{
>  
> +  private Float defaultTermBoost = null;
>  
>    public BoostingTermQuery(Term term) {
>      super(term);
>    }
>  
> +  public BoostingTermQuery(Term term, Float defaultTermBoost) {
> +    super(term);
> +    this.defaultTermBoost = defaultTermBoost;
> +  }
>  
>    protected Weight createWeight(Searcher searcher) throws IOException {
>      return new BoostingTermWeight(this, searcher);
> @@ -107,7 +112,9 @@
>            payload = positions.getPayload(payload, 0);
>            payloadScore += similarity.scorePayload(term.field(), payload, 0, 
> positions.getPayloadLength());
>            payloadsSeen++;
> -
> +        } else if (defaultTermBoost != null) {
> +          payloadScore += defaultTermBoost;
> +          payloadsSeen++;
>          } else {
>            //zero out the payload?
>          }
> @@ -146,7 +153,14 @@
>  
>    }
>  
> +  public Float getDefaultTermBoost() {
> +    return defaultTermBoost;
> +  }
>  
> +  public void setDefaultTermBoost(Float defaultTermBoost) {
> +    this.defaultTermBoost = defaultTermBoost;
> +  }
> +
>    public boolean equals(Object o) {
>      if (!(o instanceof BoostingTermQuery))
>        return false;
> {code}

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to