Merge pull request #409 from Alkarex/patch-1
[mono.git] / mcs / tools / monkeydoc / Lucene.Net / Lucene.Net / Analysis / Tokenattributes / PositionIncrementAttribute.cs
1 /* 
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements.  See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License.  You may obtain a copy of the License at
8  * 
9  * http://www.apache.org/licenses/LICENSE-2.0
10  * 
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17
18 using System;
19
20 using Attribute = Mono.Lucene.Net.Util.Attribute;
21
22 namespace Mono.Lucene.Net.Analysis.Tokenattributes
23 {
24         
25         /// <summary>The positionIncrement determines the position of this token
26         /// relative to the previous Token in a 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.</li>
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.</li>
46         /// 
47         /// </ul>
48         /// 
49         /// </summary>
50         /// <seealso cref="Mono.Lucene.Net.Index.TermPositions">
51         /// </seealso>
52         public interface PositionIncrementAttribute:Attribute
53         {
54                 /// <summary>Set the position increment. The default value is one.
55                 /// 
56                 /// </summary>
57                 /// <param name="positionIncrement">the distance from the prior term
58                 /// </param>
59                 void  SetPositionIncrement(int positionIncrement);
60                 
61                 /// <summary>Returns the position increment of this Token.</summary>
62                 /// <seealso cref="setPositionIncrement">
63                 /// </seealso>
64                 int GetPositionIncrement();
65         }
66 }