~ubuntu-branches/ubuntu/trusty/pylucene/trusty

« back to all changes in this revision

Viewing changes to lucene-java-3.5.0/lucene/src/java/org/apache/lucene/analysis/tokenattributes/PositionIncrementAttributeImpl.java

  • Committer: Package Import Robot
  • Author(s): Dmitry Nezhevenko
  • Date: 2012-04-23 16:43:55 UTC
  • mfrom: (1.1.1)
  • Revision ID: package-import@ubuntu.com-20120423164355-grqtepnwtecdjfk2
Tags: 3.5.0-1
* New maintainer (closes: 670179)
* New upstream release
* Switch to dpkg-source 3.0 (quilt) format
* Switch to machine-readable debian/copyright
* Bump debian/compat to 8, drop debian/pycompat
* Switch from cdbs to dh
* Add watch file
* Build for all supported versions of python2 (closes: 581198, 632240)
* Rename binary package to python-lucene (closes: 581197)
* Add -dbg package

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
package org.apache.lucene.analysis.tokenattributes;
 
2
 
 
3
/**
 
4
 * Licensed to the Apache Software Foundation (ASF) under one or more
 
5
 * contributor license agreements.  See the NOTICE file distributed with
 
6
 * this work for additional information regarding copyright ownership.
 
7
 * The ASF licenses this file to You under the Apache License, Version 2.0
 
8
 * (the "License"); you may not use this file except in compliance with
 
9
 * the License.  You may obtain a copy of the License at
 
10
 *
 
11
 *     http://www.apache.org/licenses/LICENSE-2.0
 
12
 *
 
13
 * Unless required by applicable law or agreed to in writing, software
 
14
 * distributed under the License is distributed on an "AS IS" BASIS,
 
15
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 
16
 * See the License for the specific language governing permissions and
 
17
 * limitations under the License.
 
18
 */
 
19
 
 
20
import java.io.Serializable;
 
21
 
 
22
import org.apache.lucene.analysis.TokenStream;
 
23
import org.apache.lucene.util.AttributeImpl;
 
24
 
 
25
/** The positionIncrement determines the position of this token
 
26
 * relative to the previous Token in a {@link TokenStream}, used in phrase
 
27
 * searching.
 
28
 *
 
29
 * <p>The default value is one.
 
30
 *
 
31
 * <p>Some common uses for this are:<ul>
 
32
 *
 
33
 * <li>Set it to zero to put multiple terms in the same position.  This is
 
34
 * useful if, e.g., a word has multiple stems.  Searches for phrases
 
35
 * including either stem will match.  In this case, all but the first stem's
 
36
 * increment should be set to zero: the increment of the first instance
 
37
 * should be one.  Repeating a token with an increment of zero can also be
 
38
 * used to boost the scores of matches on that token.
 
39
 *
 
40
 * <li>Set it to values greater than one to inhibit exact phrase matches.
 
41
 * If, for example, one does not want phrases to match across removed stop
 
42
 * words, then one could build a stop word filter that removes stop words and
 
43
 * also sets the increment to the number of stop words removed before each
 
44
 * non-stop word.  Then exact phrase queries will only match when the terms
 
45
 * occur with no intervening stop words.
 
46
 *
 
47
 * </ul>
 
48
 */
 
49
public class PositionIncrementAttributeImpl extends AttributeImpl implements PositionIncrementAttribute, Cloneable, Serializable {
 
50
  private int positionIncrement = 1;
 
51
  
 
52
  /** Set the position increment. The default value is one.
 
53
   *
 
54
   * @param positionIncrement the distance from the prior term
 
55
   */
 
56
  public void setPositionIncrement(int positionIncrement) {
 
57
    if (positionIncrement < 0)
 
58
      throw new IllegalArgumentException
 
59
        ("Increment must be zero or greater: " + positionIncrement);
 
60
    this.positionIncrement = positionIncrement;
 
61
  }
 
62
 
 
63
  /** Returns the position increment of this Token.
 
64
   * @see #setPositionIncrement
 
65
   */
 
66
  public int getPositionIncrement() {
 
67
    return positionIncrement;
 
68
  }
 
69
 
 
70
  @Override
 
71
  public void clear() {
 
72
    this.positionIncrement = 1;
 
73
  }
 
74
  
 
75
  @Override
 
76
  public boolean equals(Object other) {
 
77
    if (other == this) {
 
78
      return true;
 
79
    }
 
80
    
 
81
    if (other instanceof PositionIncrementAttributeImpl) {
 
82
      return positionIncrement == ((PositionIncrementAttributeImpl) other).positionIncrement;
 
83
    }
 
84
 
 
85
    return false;
 
86
  }
 
87
 
 
88
  @Override
 
89
  public int hashCode() {
 
90
    return positionIncrement;
 
91
  }
 
92
  
 
93
  @Override
 
94
  public void copyTo(AttributeImpl target) {
 
95
    PositionIncrementAttribute t = (PositionIncrementAttribute) target;
 
96
    t.setPositionIncrement(positionIncrement);
 
97
  }  
 
98
 
 
99
}