private void AddTermInternal(System.String termText, int freq) { currentField.length += freq; TVTerm term = new TVTerm(); term.termText = termText; term.freq = freq; terms.Add(term); }
private void AddTermInternal(System.String termText, int freq, int[] positions, TermVectorOffsetInfo[] offsets) { TVTerm term = new TVTerm(); term.termText = termText; term.freq = freq; term.positions = positions; term.offsets = offsets; terms.Add(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; } }
private void WriteField() { // remember where this field is written currentField.tvfPointer = tvf.GetFilePointer(); //System.out.println("Field Pointer: " + currentField.tvfPointer); int size = terms.Count; tvf.WriteVInt(size); bool storePositions = currentField.storePositions; bool storeOffsets = currentField.storeOffsets; byte bits = (byte)(0x0); if (storePositions) { bits |= STORE_POSITIONS_WITH_TERMVECTOR; } if (storeOffsets) { bits |= STORE_OFFSET_WITH_TERMVECTOR; } tvf.WriteByte(bits); System.String lastTermText = ""; for (int i = 0; i < size; i++) { TVTerm term = (TVTerm)terms[i]; 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; if (storePositions) { if (term.positions == null) { throw new System.SystemException("Trying to write positions that are null!"); } // use delta encoding for positions int position = 0; for (int j = 0; j < term.freq; j++) { tvf.WriteVInt(term.positions[j] - position); position = term.positions[j]; } } if (storeOffsets) { if (term.offsets == null) { throw new System.SystemException("Trying to write offsets that are null!"); } // use delta encoding for offsets int position = 0; for (int j = 0; j < term.freq; j++) { tvf.WriteVInt(term.offsets[j].GetStartOffset() - position); tvf.WriteVInt(term.offsets[j].GetEndOffset() - term.offsets[j].GetStartOffset()); //Save the diff between the two. position = term.offsets[j].GetEndOffset(); } } } }
private void AddTermInternal(System.String termText, int freq) { currentField.length += freq; TVTerm term = new TVTerm(); term.termText = termText; term.freq = freq; terms.Add(term); }
private void AddTermInternal(System.String termText, int freq, int[] positions, TermVectorOffsetInfo[] offsets) { TVTerm term = new TVTerm(); term.termText = termText; term.freq = freq; term.positions = positions; term.offsets = offsets; terms.Add(term); }