private FieldFragList getFieldFragList( final FieldQuery fieldQuery, IndexReader reader, int docId, String fieldName, int fragCharSize ) throws IOException { FieldTermStack fieldTermStack = new FieldTermStack( reader, docId, fieldName, fieldQuery ); FieldPhraseList fieldPhraseList = new FieldPhraseList( fieldTermStack, fieldQuery ); return fragListBuilder.createFieldFragList( fieldPhraseList, fragCharSize ); }
/** * Build a FieldFragList for one field. */ private FieldFragList getFieldFragList( FragListBuilder fragListBuilder, final FieldQuery fieldQuery, IndexReader reader, int docId, String matchedField, int fragCharSize ) throws IOException { FieldTermStack fieldTermStack = new FieldTermStack( reader, docId, matchedField, fieldQuery ); FieldPhraseList fieldPhraseList = new FieldPhraseList( fieldTermStack, fieldQuery, phraseLimit ); return fragListBuilder.createFieldFragList( fieldPhraseList, fragCharSize ); }
/** * Build a FieldFragList for more than one field. */ private FieldFragList getFieldFragList( FragListBuilder fragListBuilder, final FieldQuery fieldQuery, IndexReader reader, int docId, Set< String > matchedFields, int fragCharSize ) throws IOException { Iterator< String > matchedFieldsItr = matchedFields.iterator(); if ( !matchedFieldsItr.hasNext() ) { throw new IllegalArgumentException( "matchedFields must contain at least on field name." ); } FieldPhraseList[] toMerge = new FieldPhraseList[ matchedFields.size() ]; int i = 0; while ( matchedFieldsItr.hasNext() ) { FieldTermStack stack = new FieldTermStack( reader, docId, matchedFieldsItr.next(), fieldQuery ); toMerge[ i++ ] = new FieldPhraseList( stack, fieldQuery, phraseLimit ); } return fragListBuilder.createFieldFragList( new FieldPhraseList( toMerge ), fragCharSize ); }