[
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]