public override void GetTermFreqVector(int docNumber, String field, TermVectorMapper mapper) { if (DEBUG) { System.Diagnostics.Debug.WriteLine("MemoryIndexReader.getTermFreqVector"); } Info info = GetInfo(field); if (info == null) { return; } info.SortTerms(); mapper.SetExpectations(field, info.SortedTerms.Length, _index.stride != 1, true); for (int i = info.SortedTerms.Length; --i >= 0;) { ArrayIntList positions = info.SortedTerms[i].Value; int size = positions.Size(); var offsets = new TermVectorOffsetInfo[size / _index.stride]; for (int k = 0, j = 1; j < size; k++, j += _index.stride) { int start = positions.Get(j); int end = positions.Get(j + 1); offsets[k] = new TermVectorOffsetInfo(start, end); } mapper.Map(info.SortedTerms[i].Key, _index.NumPositions(info.SortedTerms[i].Value), offsets, (info.SortedTerms[i].Value).ToArray(_index.stride)); } }
public int[] GetTermFrequencies() { int[] freqs = new int[sortedTerms.Length]; for (int i = sortedTerms.Length; --i >= 0;) { freqs[i] = _index.NumPositions(sortedTerms[i].Value); } return(freqs); }
public override int DocFreq() { if (DEBUG) { System.Diagnostics.Debug.WriteLine("TermEnum.docFreq"); } if (_j >= _index.sortedFields.Length) { return(0); } Info info = _reader.GetInfo(_j); if (_i >= info.SortedTerms.Length) { return(0); } return(_index.NumPositions(info.GetPositions(_i))); }