Return-Path: Delivered-To: apmail-lucene-java-commits-archive@www.apache.org Received: (qmail 64258 invoked from network); 16 Aug 2009 21:57:14 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 16 Aug 2009 21:57:14 -0000 Received: (qmail 16102 invoked by uid 500); 16 Aug 2009 21:57:20 -0000 Delivered-To: apmail-lucene-java-commits-archive@lucene.apache.org Received: (qmail 16012 invoked by uid 500); 16 Aug 2009 21:57:20 -0000 Mailing-List: contact java-commits-help@lucene.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: java-dev@lucene.apache.org Delivered-To: mailing list java-commits@lucene.apache.org Received: (qmail 16003 invoked by uid 99); 16 Aug 2009 21:57:20 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 16 Aug 2009 21:57:20 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 16 Aug 2009 21:57:11 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id B0C94238889D; Sun, 16 Aug 2009 21:56:51 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r804786 - in /lucene/java/trunk/contrib/fast-vector-highlighter/src: java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java Date: Sun, 16 Aug 2009 21:56:51 -0000 To: java-commits@lucene.apache.org From: markrmiller@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090816215651.B0C94238889D@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: markrmiller Date: Sun Aug 16 21:56:51 2009 New Revision: 804786 URL: http://svn.apache.org/viewvc?rev=804786&view=rev Log: LUCENE-1522 fix + test Modified: lucene/java/trunk/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java lucene/java/trunk/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java Modified: lucene/java/trunk/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java?rev=804786&r1=804785&r2=804786&view=diff ============================================================================== --- lucene/java/trunk/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java (original) +++ lucene/java/trunk/contrib/fast-vector-highlighter/src/java/org/apache/lucene/search/vectorhighlight/BaseFragmentsBuilder.java Sun Aug 16 21:56:51 2009 @@ -73,6 +73,7 @@ List fragments = new ArrayList( maxNumFragments ); String[] values = getFieldValues( reader, docId, fieldName ); + if( values.length == 0 ) return null; StringBuilder buffer = new StringBuilder(); int[] nextValueIndex = { 0 }; for( int n = 0; n < maxNumFragments && n < fragInfos.size(); n++ ){ @@ -84,7 +85,7 @@ protected String[] getFieldValues( IndexReader reader, int docId, String fieldName) throws IOException { Document doc = reader.document( docId, new MapFieldSelector( new String[]{ fieldName } ) ); - return doc.getValues( fieldName ); + return doc.getValues( fieldName ); // according to Document class javadoc, this never returns null } protected String makeFragment( StringBuilder buffer, int[] index, String[] values, WeightedFragInfo fragInfo ){ Modified: lucene/java/trunk/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java URL: http://svn.apache.org/viewvc/lucene/java/trunk/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java?rev=804786&r1=804785&r2=804786&view=diff ============================================================================== --- lucene/java/trunk/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java (original) +++ lucene/java/trunk/contrib/fast-vector-highlighter/src/test/org/apache/lucene/search/vectorhighlight/SimpleFragmentsBuilderTest.java Sun Aug 16 21:56:51 2009 @@ -17,6 +17,15 @@ * limitations under the License. */ +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.document.Document; +import org.apache.lucene.document.Field; +import org.apache.lucene.document.Field.Index; +import org.apache.lucene.document.Field.Store; +import org.apache.lucene.document.Field.TermVector; +import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriter.MaxFieldLength; import org.apache.lucene.search.Query; public class SimpleFragmentsBuilderTest extends AbstractTestCase { @@ -96,4 +105,26 @@ SimpleFragmentsBuilder sfb = new SimpleFragmentsBuilder(); assertEquals( "ssing speed, the", sfb.createFragment( reader, 0, F, ffl ) ); } + + public void testUnstoredField() throws Exception { + makeUnstoredIndex(); + + FieldQuery fq = new FieldQuery( tq( "aaa" ), true, true ); + FieldTermStack stack = new FieldTermStack( reader, 0, F, fq ); + FieldPhraseList fpl = new FieldPhraseList( stack, fq ); + SimpleFragListBuilder sflb = new SimpleFragListBuilder(); + FieldFragList ffl = sflb.createFieldFragList( fpl, 100 ); + SimpleFragmentsBuilder sfb = new SimpleFragmentsBuilder(); + assertNull( sfb.createFragment( reader, 0, F, ffl ) ); + } + + protected void makeUnstoredIndex() throws Exception { + IndexWriter writer = new IndexWriter( dir, analyzerW, true, MaxFieldLength.LIMITED ); + Document doc = new Document(); + doc.add( new Field( F, "aaa", Store.NO, Index.ANALYZED, TermVector.WITH_POSITIONS_OFFSETS ) ); + writer.addDocument( doc ); + writer.close(); + + reader = IndexReader.open( dir ); + } }