You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ko...@apache.org on 2010/01/10 11:29:11 UTC

svn commit: r897611 - /lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java

Author: koji
Date: Sun Jan 10 10:29:08 2010
New Revision: 897611

URL: http://svn.apache.org/viewvc?rev=897611&view=rev
Log:
SOLR-1268: ignore undefined field

Modified:
    lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java

Modified: lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java?rev=897611&r1=897610&r2=897611&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java Sun Jan 10 10:29:08 2010
@@ -346,9 +346,14 @@
     return fragments;
   }
   
+  /*
+   * If fieldName is undefined, this method returns false, then
+   * doHighlightingByHighlighter() will do nothing for the field.
+   */
   private boolean useFastVectorHighlighter( SolrParams params, IndexSchema schema, String fieldName ){
-    SchemaField schemaField = schema.getField( fieldName );
-    return schemaField.storeTermPositions() &&
+    SchemaField schemaField = schema.getFieldOrNull( fieldName );
+    return schemaField != null &&
+      schemaField.storeTermPositions() &&
       schemaField.storeTermOffsets() &&
       !params.getFieldBool( fieldName, HighlightParams.USE_HIGHLIGHTER, false );
   }
@@ -357,7 +362,8 @@
       int docId, Document doc, String fieldName ) throws IOException {
     SolrParams params = req.getParams(); 
     String[] docTexts = doc.getValues(fieldName);
-    if (docTexts == null) return;
+    // according to Document javadoc, doc.getValues() never returns null. check empty instead of null
+    if (docTexts.length == 0) return;
     
     SolrIndexSearcher searcher = req.getSearcher();
     IndexSchema schema = searcher.getSchema();