Selects index terms according to provided pluggable {@link IndexTermSelector}, and stores them in a prefix trie that's loaded entirely in RAM stored as an FST. This terms index only supports unsigned byte term sort order (unicode codepoint order when the bytes are UTF8). @lucene.experimental
Inheritance: Lucene.Net.Codecs.BlockTerms.TermsIndexWriterBase
            public FstFieldWriter(FieldInfo fieldInfo, long termsFilePointer, VariableGapTermsIndexWriter vgtiw)
            {
                _vgtiw    = vgtiw;
                FieldInfo = fieldInfo;
                PositiveIntOutputs fstOutputs = PositiveIntOutputs.Singleton;

                _fstBuilder = new Builder <long>(FST.INPUT_TYPE.BYTE1, fstOutputs);
                IndexStart  = _vgtiw.Output.FilePointer;

                // Always put empty string in
                _fstBuilder.Add(new IntsRef(), termsFilePointer);
                _startTermsFilePointer = termsFilePointer;
            }
            public FSTFieldWriter(VariableGapTermsIndexWriter outerInstance, FieldInfo fieldInfo, long termsFilePointer)
            {
                this.outerInstance = outerInstance;

                this.fieldInfo = fieldInfo;
                fstOutputs     = PositiveInt32Outputs.Singleton;
                fstBuilder     = new Builder <long?>(FST.INPUT_TYPE.BYTE1, fstOutputs);
                indexStart     = outerInstance.m_output.Position; // LUCENENET specific: Renamed from getFilePointer() to match FileStream
                ////System.out.println("VGW: field=" + fieldInfo.name);

                // Always put empty string in
                fstBuilder.Add(new Int32sRef(), termsFilePointer);
                startTermsFilePointer = termsFilePointer;
            }
            public FstFieldWriter(FieldInfo fieldInfo, long termsFilePointer, VariableGapTermsIndexWriter vgtiw)
            {
                _vgtiw = vgtiw;
                FieldInfo = fieldInfo;
                PositiveIntOutputs fstOutputs = PositiveIntOutputs.Singleton;
                _fstBuilder = new Builder<long?>(FST.INPUT_TYPE.BYTE1, fstOutputs);
                IndexStart = _vgtiw.Output.FilePointer;

                // Always put empty string in
                _fstBuilder.Add(new IntsRef(), termsFilePointer);
                _startTermsFilePointer = termsFilePointer;
            }