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