예제 #1
0
        public override int SetField(FieldInfo fieldInfo)
        {
            IndexOptions indexOptions = fieldInfo.IndexOptions;

            // LUCENENET specific - to avoid boxing, changed from CompareTo() to IndexOptionsComparer.Compare()
            fieldHasFreqs     = IndexOptionsComparer.Default.Compare(indexOptions, IndexOptions.DOCS_AND_FREQS) >= 0;
            fieldHasPositions = IndexOptionsComparer.Default.Compare(indexOptions, IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
            fieldHasOffsets   = IndexOptionsComparer.Default.Compare(indexOptions, IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
            fieldHasPayloads  = fieldInfo.HasPayloads;
            skipWriter.SetField(fieldHasPositions, fieldHasOffsets, fieldHasPayloads);
            lastState = emptyState;
            if (fieldHasPositions)
            {
                if (fieldHasPayloads || fieldHasOffsets)
                {
                    return(3); // doc + pos + pay FP
                }
                else
                {
                    return(2); // doc + pos FP
                }
            }
            else
            {
                return(1); // doc FP
            }
        }
예제 #2
0
 public override int SetField(FieldInfo fieldInfo)
 {
     FieldInfo.IndexOptions?indexOptions = fieldInfo.FieldIndexOptions;
     FieldHasFreqs     = indexOptions >= FieldInfo.IndexOptions.DOCS_AND_FREQS;
     FieldHasPositions = indexOptions >= FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS;
     FieldHasOffsets   = indexOptions >= FieldInfo.IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS;
     FieldHasPayloads  = fieldInfo.HasPayloads();
     SkipWriter.SetField(FieldHasPositions, FieldHasOffsets, FieldHasPayloads);
     LastState = EmptyState;
     if (FieldHasPositions)
     {
         if (FieldHasPayloads || FieldHasOffsets)
         {
             return(3); // doc + pos + pay FP
         }
         else
         {
             return(2); // doc + pos FP
         }
     }
     else
     {
         return(1); // doc FP
     }
 }
예제 #3
0
        public override int SetField(FieldInfo fieldInfo)
        {
            IndexOptions indexOptions = fieldInfo.IndexOptions;

            fieldHasFreqs     = indexOptions.CompareTo(IndexOptions.DOCS_AND_FREQS) >= 0;
            fieldHasPositions = indexOptions.CompareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS) >= 0;
            fieldHasOffsets   = indexOptions.CompareTo(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS) >= 0;
            fieldHasPayloads  = fieldInfo.HasPayloads;
            skipWriter.SetField(fieldHasPositions, fieldHasOffsets, fieldHasPayloads);
            lastState = emptyState;
            if (fieldHasPositions)
            {
                if (fieldHasPayloads || fieldHasOffsets)
                {
                    return(3); // doc + pos + pay FP
                }
                else
                {
                    return(2); // doc + pos FP
                }
            }
            else
            {
                return(1); // doc FP
            }
        }