private void  AddTermInternal(System.String termText, int freq)
        {
            currentField.length += freq;
            TVTerm term = new TVTerm();

            term.termText = termText;
            term.freq     = freq;
            terms.Add(term);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 4
0
        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();
                    }
                }
            }
        }
Esempio n. 5
0
		private void  AddTermInternal(System.String termText, int freq)
		{
			currentField.length += freq;
			TVTerm term = new TVTerm();
			term.termText = termText;
			term.freq = freq;
			terms.Add(term);
		}
Esempio n. 6
0
 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);
 }