You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by cs...@apache.org on 2012/11/20 09:49:28 UTC

svn commit: r1411588 - /maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java

Author: cstamas
Date: Tue Nov 20 08:49:27 2012
New Revision: 1411588

URL: http://svn.apache.org/viewvc?rev=1411588&view=rev
Log:
MINDEXER-69 reuse rewritten query for all artifacts

Invoking Query#rewrite(IndexReader) for each
ArtifactInfo/MatchHighlightRequest is redundant and results in
significant unnecessary cpu and/or io utilization.

Signed-off-by: Igor Fedorenko <ig...@ifedorenko.com>
Signed-off-by: Tamás Cservenák <cs...@apache.org>

Modified:
    maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java

Modified: maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
URL: http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java?rev=1411588&r1=1411587&r2=1411588&view=diff
==============================================================================
--- maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java (original)
+++ maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java Tue Nov 20 08:49:27 2012
@@ -110,6 +110,13 @@ public class DefaultIteratorResultSet
 
         this.matchHighlightRequests = request.getMatchHighlightRequests();
 
+        List<MatchHighlightRequest> matchHighlightRequests = new ArrayList<MatchHighlightRequest>();
+        for ( MatchHighlightRequest hr : request.getMatchHighlightRequests() )
+        {
+            Query rewrittenQuery = hr.getQuery().rewrite( indexSearcher.getIndexReader() );
+            matchHighlightRequests.add( new MatchHighlightRequest( hr.getField(), rewrittenQuery, hr.getHighlightMode() ) );
+        }
+
         this.hits = hits;
 
         this.from = request.getStart();
@@ -358,8 +365,6 @@ public class DefaultIteratorResultSet
             text = text.replace( '/', '.' ).replaceAll( "^\\.", "" ).replaceAll( "\n\\.", "\n" );
         }
 
-        Query rewrittenQuery = hr.getQuery().rewrite( indexSearcher.getIndexReader() );
-
         CachingTokenFilter tokenStream =
             new CachingTokenFilter( context.getAnalyzer().tokenStream( field.getKey(), new StringReader( text ) ) );
 
@@ -376,7 +381,7 @@ public class DefaultIteratorResultSet
                 + "\" is not supported!" );
         }
 
-        return getBestFragments( rewrittenQuery, formatter, tokenStream, text, 3 );
+        return getBestFragments( hr.getQuery(), formatter, tokenStream, text, 3 );
     }
 
     protected final List<String> getBestFragments( Query query, Formatter formatter, TokenStream tokenStream,