LUCENE-1889: pass the reader to FVH so it can rewrite multitermqueries

git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/branches/branch_3x@1167010 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FastVectorHighlighter.java b/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FastVectorHighlighter.java
index 54072b9..9a3ffcf 100644
--- a/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FastVectorHighlighter.java
+++ b/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FastVectorHighlighter.java
@@ -77,6 +77,8 @@
    * @return the created {@link FieldQuery} object
    */
   public FieldQuery getFieldQuery( Query query ) {
+    // TODO: should we deprecate this? 
+    // because if there is no reader, then we cannot rewrite MTQ.
     try {
       return new FieldQuery( query, null, phraseHighlight, fieldMatch );
     } catch (IOException e) {
diff --git a/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldQuery.java b/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldQuery.java
index 29d4748..7cb42f6 100644
--- a/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldQuery.java
+++ b/lucene/contrib/highlighter/src/java/org/apache/lucene/search/vectorhighlight/FieldQuery.java
@@ -107,7 +107,7 @@
       if( !flatQueries.contains( sourceQuery ) )
         flatQueries.add( sourceQuery );
     }
-    else if (sourceQuery instanceof MultiTermQuery) {
+    else if (sourceQuery instanceof MultiTermQuery && reader != null) {
       MultiTermQuery copy = (MultiTermQuery) sourceQuery.clone();
       copy.setRewriteMethod(new MultiTermQuery.TopTermsScoringBooleanQueryRewrite(MAX_MTQ_TERMS));
       BooleanQuery mtqTerms = (BooleanQuery) copy.rewrite(reader);
diff --git a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
index 5147bf1..47d59a7 100644
--- a/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
+++ b/solr/core/src/java/org/apache/solr/highlight/DefaultSolrHighlighter.java
@@ -363,7 +363,7 @@
         // FVH cannot process hl.requireFieldMatch parameter per-field basis
         params.getBool( HighlightParams.FIELD_MATCH, false ) );
     fvh.setPhraseLimit(params.getInt(HighlightParams.PHRASE_LIMIT, Integer.MAX_VALUE));
-    FieldQuery fieldQuery = fvh.getFieldQuery( query );
+    FieldQuery fieldQuery = fvh.getFieldQuery( query, searcher.getIndexReader() );
 
     // Highlight each document
     DocIterator iterator = docs.iterator();