Exemplo n.º 1
0
        private void  WriteTerm(Term term)
        {
            int start  = StringHelper.StringDifference(lastTerm.text, term.text);
            int length = term.text.Length - start;

            output.WriteVInt(start);                              // write shared prefix length
            output.WriteVInt(length);                             // write delta length
            output.WriteChars(term.text, start, length);          // write delta chars

            output.WriteVInt(fieldInfos.FieldNumber(term.field)); // write Field num

            lastTerm = term;
        }
        private void  WriteField()
        {
            // remember where this Field is written
            currentField.tvfPointer = tvf.GetFilePointer();
            //System.out.println("Field Pointer: " + currentField.tvfPointer);
            int size;

            tvf.WriteVInt(size = terms.Count);
            tvf.WriteVInt(currentField.length - size);
            System.String lastTermText = "";
            // write term ids and positions
            for (int i = 0; i < size; i++)
            {
                TVTerm term = (TVTerm)terms[i];
                //tvf.writeString(term.termText);
                int start  = StringHelper.StringDifference(lastTermText, term.termText);
                int length = term.termText.Length - start;
                tvf.WriteVInt(start);                         // write shared prefix length
                tvf.WriteVInt(length);                        // write delta length
                tvf.WriteChars(term.termText, start, length); // write delta chars
                tvf.WriteVInt(term.freq);
                lastTermText = term.termText;
            }
        }