| Index: lucene/contrib/highlighter/src/test/org/apache/lucene/search/vectorhighlight/FieldPhraseList.java |
| =================================================================== |
| @@ -110,7 +110,7 @@ public class FieldPhraseList { |
| this.seqnum = number; |
| termsOffsets = new ArrayList<Toffs>( terms.size() ); |
| TermInfo ti = terms.get( 0 ); |
| - termsOffsets.add( new Toffs( ti.getStartOffset(), ti.getEndOffset() ) ); |
| + termsOffsets.add( new Toffs( ti.getStartOffset(), ti.getEndOffset(), Integer.toString(ti.getPosition()) ) ); |
| if( terms.size() == 1 ){ |
| text = ti.getText(); |
| return; |
| @@ -121,12 +121,14 @@ public class FieldPhraseList { |
| for( int i = 1; i < terms.size(); i++ ){ |
| ti = terms.get( i ); |
| sb.append( ti.getText() ); |
| - if( ti.getPosition() - pos == 1 ){ |
| + if( ti.getPosition() - pos == 1 ) |
| + { |
| Toffs to = termsOffsets.get( termsOffsets.size() - 1 ); |
| to.setEndOffset( ti.getEndOffset() ); |
| + to.setPositionOffset(Integer.toString(ti.getPosition()) ); |
| } |
| else{ |
| - termsOffsets.add( new Toffs( ti.getStartOffset(), ti.getEndOffset() ) ); |
| + termsOffsets.add( new Toffs( ti.getStartOffset(), ti.getEndOffset(), Integer.toString(ti.getPosition()) ) ); |
| } |
| pos = ti.getPosition(); |
| } |
| @@ -167,23 +169,38 @@ public class FieldPhraseList { |
| public static class Toffs { |
| int startOffset; |
| int endOffset; |
| - public Toffs( int startOffset, int endOffset ){ |
| + String positionOffset; |
| + |
| + public Toffs( int startOffset, int endOffset, String positionOffset ){ |
| this.startOffset = startOffset; |
| this.endOffset = endOffset; |
| + this.positionOffset = positionOffset; |
| } |
| public void setEndOffset( int endOffset ){ |
| this.endOffset = endOffset; |
| } |
| + |
| + public void setPositionOffset( String positionOffset ){ |
| + StringBuilder sb = new StringBuilder(); |
| + sb.append( this.getPositionOffset() ).append(',').append(positionOffset); |
| + this.positionOffset = sb.toString(); |
| + } |
| + |
| public int getStartOffset(){ |
| return startOffset; |
| } |
| public int getEndOffset(){ |
| return endOffset; |
| } |
| + |
| + public String getPositionOffset(){ |
| + return positionOffset; |
| + } |
| + |
| @Override |
| public String toString(){ |
| StringBuilder sb = new StringBuilder(); |
| - sb.append( '(' ).append( startOffset ).append( ',' ).append( endOffset ).append( ')' ); |
| + sb.append( '(' ).append( startOffset ).append( ',' ).append( endOffset ).append( ',' ).append( positionOffset ).append( ')' ); |
| return sb.toString(); |
| } |
| } |