[ https://issues.apache.org/jira/browse/LUCENE-1155?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12630687#action_12630687 ]
Karl Wettin commented on LUCENE-1155: ------------------------------------- bq. Sorry, I still don't get it, but I'm probably dense. Maybe an actual example would help. In my single case all term positions contains a payload boost. In order to optimize the index size I analyzed the payloads and came to the conclution that 30% or so had the boost 5f, a clear majority of the boosts. In order to minimize the index size I choosed to use this patch and set the default payload to 5f rather than storing 5f in the payload. How and why I managed to get a majority of the payloads to be 5f and if I could avoid this by manageing boosts in another layer is a completely different story. > 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]