Ejemplo n.º 1
0
        private void WriteFST(FieldInfo field, IEnumerable <BytesRef> values)
        {
            meta.WriteVInt(field.Number);
            meta.WriteByte(MemoryDocValuesProducer.FST);
            meta.WriteLong(data.FilePointer);
            PositiveIntOutputs outputs = PositiveIntOutputs.Singleton;
            var  builder = new Builder <long?>(INPUT_TYPE.BYTE1, outputs);
            var  scratch = new IntsRef();
            long ord     = 0;

            foreach (BytesRef v in values)
            {
                builder.Add(Util.ToIntsRef(v, scratch), ord);
                ord++;
            }
            FST <long?> fst = builder.Finish();

            if (fst != null)
            {
                fst.Save(data);
            }
            meta.WriteVLong(ord);
        }
Ejemplo n.º 2
0
            internal TermsWriter(FSTOrdTermsWriter outerInstance, FieldInfo fieldInfo)
            {
                _outerInstance = outerInstance;
                _numTerms = 0;
                _fieldInfo = fieldInfo;
                _longsSize = outerInstance.postingsWriter.SetField(fieldInfo);
                _outputs = PositiveIntOutputs.Singleton;
                _builder = new Builder<long?>(FST.INPUT_TYPE.BYTE1, _outputs);

                _lastBlockStatsFp = 0;
                _lastBlockMetaLongsFp = 0;
                _lastBlockMetaBytesFp = 0;
                _lastBlockLongs = new long[_longsSize];

                _lastLongs = new long[_longsSize];
                _lastMetaBytesFp = 0;
            }