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 } }
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 } }
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 } }