Lucene.Net  3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Pages
FieldInvertState.cs
Go to the documentation of this file.
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 AttributeSource = Lucene.Net.Util.AttributeSource;
21 
22 namespace Lucene.Net.Index
23 {
24 
25  /// <summary> This class tracks the number and position / offset parameters of terms
26  /// being added to the index. The information collected in this class is
27  /// also used to calculate the normalization factor for a field.
28  ///
29  /// <p/><b>WARNING</b>: This API is new and experimental, and may suddenly
30  /// change.<p/>
31  /// </summary>
32  public sealed class FieldInvertState
33  {
34  internal int position;
35  internal int length;
36  internal int numOverlap;
37  internal int offset;
38  internal float boost;
39  internal AttributeSource attributeSource;
40 
42  {
43  }
44 
45  public FieldInvertState(int position, int length, int numOverlap, int offset, float boost)
46  {
47  this.position = position;
48  this.length = length;
49  this.numOverlap = numOverlap;
50  this.offset = offset;
51  this.boost = boost;
52  }
53 
54  /// <summary> Re-initialize the state, using this boost value.</summary>
55  /// <param name="docBoost">boost value to use.
56  /// </param>
57  internal void Reset(float docBoost)
58  {
59  position = 0;
60  length = 0;
61  numOverlap = 0;
62  offset = 0;
63  boost = docBoost;
64  attributeSource = null;
65  }
66 
67  /// <summary> Get the last processed term position.</summary>
68  /// <value> the position </value>
69  public int Position
70  {
71  get { return position; }
72  }
73 
74  /// <summary> Get total number of terms in this field.</summary>
75  /// <value> the length </value>
76  public int Length
77  {
78  get { return length; }
79  }
80 
81  /// <summary> Get the number of terms with <c>positionIncrement == 0</c>.</summary>
82  /// <value> the numOverlap </value>
83  public int NumOverlap
84  {
85  get { return numOverlap; }
86  }
87 
88  /// <summary> Get end offset of the last processed term.</summary>
89  /// <value> the offset </value>
90  public int Offset
91  {
92  get { return offset; }
93  }
94 
95  /// <summary> Get boost value. This is the cumulative product of
96  /// document boost and field boost for all field instances
97  /// sharing the same field name.
98  /// </summary>
99  /// <value> the boost </value>
100  public float Boost
101  {
102  get { return boost; }
103  }
104 
106  {
107  get { return attributeSource; }
108  }
109  }
110 }