Beispiel #1
0
        protected virtual string GetFragmentSourceMSO(StringBuilder buffer, int[] index, Field[] values,
                                                      int startOffset, int endOffset, int[] modifiedStartOffset)
        {
            while (buffer.Length < endOffset && index[0] < values.Length)
            {
                buffer.Append(values[index[0]++].GetStringValue());
                buffer.Append(MultiValuedSeparator);
            }
            int bufferLength = buffer.Length;

            // we added the multi value char to the last buffer, ignore it
            if (values[index[0] - 1].IndexableFieldType.IsTokenized)
            {
                bufferLength--;
            }
            int eo = bufferLength < endOffset ? bufferLength : boundaryScanner.FindEndOffset(buffer, endOffset);

            modifiedStartOffset[0] = boundaryScanner.FindStartOffset(buffer, startOffset);
            return(buffer.ToString(modifiedStartOffset[0], eo - modifiedStartOffset[0]));
        }
Beispiel #2
0
 private void TestFindStartOffset(StringBuilder text, int start, int expected, IBoundaryScanner scanner)
 {
     assertEquals(expected, scanner.FindStartOffset(text, start));
 }