Exemplo n.º 1
0
            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);
 }
Exemplo n.º 3
0
                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)));
                }