Author: cstamas
Date: Thu Dec  2 17:59:57 2010
New Revision: 1041505

URL: http://svn.apache.org/viewvc?rev=1041505&view=rev
Log:
Adding debug (Lucene Explain) capability (for debugging purposes), and also 
fixed all the places where non-NexusIndexer/Searcher was used (that was 
preventing to centralize Similarity changes).

Modified:
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/AbstractSearchRequest.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultIteratorResultSet.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexSearcher.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
    
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
    
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/AbstractSearchRequest.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/AbstractSearchRequest.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/AbstractSearchRequest.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/AbstractSearchRequest.java
 Thu Dec  2 17:59:57 2010
@@ -62,6 +62,13 @@ public class AbstractSearchRequest
      */
     private List<MatchHighlightRequest> matchHighlightRequests;
 
+    /**
+     * Should Lucene Explanations be added to resulting ArtifactInfo's 
attributes (keyed as
+     * org.apache.lucene.search.Explanation.class.getName())? Warning: 
calculating these are costly operation, and
+     * should not be used in production systems (maybe on some "debug" like UI 
or so).
+     */
+    private boolean luceneExplain = false;
+
     public AbstractSearchRequest( Query query )
     {
         this( query, null );
@@ -189,4 +196,14 @@ public class AbstractSearchRequest
     {
         this.matchHighlightRequests = matchHighlightRequests;
     }
+
+    public boolean isLuceneExplain()
+    {
+        return luceneExplain;
+    }
+
+    public void setLuceneExplain( boolean luceneExplain )
+    {
+        this.luceneExplain = luceneExplain;
+    }
 }

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=1041505&r1=1041504&r2=1041505&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
 Thu Dec  2 17:59:57 2010
@@ -27,6 +27,7 @@ import java.util.List;
 import org.apache.lucene.analysis.CachingTokenFilter;
 import org.apache.lucene.analysis.TokenStream;
 import org.apache.lucene.document.Document;
+import org.apache.lucene.search.Explanation;
 import org.apache.lucene.search.Hits;
 import org.apache.lucene.search.IndexSearcher;
 import org.apache.lucene.search.Query;
@@ -190,10 +191,12 @@ public class DefaultIteratorResultSet
             {
                 // uncomment this to have explainations too
                 // WARNING: NOT FOR PRODUCTION SYSTEMS, THIS IS VERY COSTLY 
OPERATION
-                // For debugging only
-                //
-                // result.getAttributes().put( Explanation.class.getName(),
-                // indexSearcher.explain( searchRequest.getQuery(), hits.id( 
pointer ) ).toString() );
+                // For debugging only!!!
+                if ( searchRequest.isLuceneExplain() )
+                {
+                    result.getAttributes().put( Explanation.class.getName(),
+                        indexSearcher.explain( searchRequest.getQuery(), 
hits.id( pointer ) ).toString() );
+                }
 
                 result.setLuceneScore( hits.score( pointer ) );
 

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/DefaultSearchEngine.java
 Thu Dec  2 17:59:57 2010
@@ -37,6 +37,7 @@ import org.apache.lucene.search.Sort;
 import org.apache.lucene.search.SortField;
 import org.apache.maven.index.context.IndexUtils;
 import org.apache.maven.index.context.IndexingContext;
+import org.apache.maven.index.context.NexusIndexSearcher;
 import org.codehaus.plexus.component.annotations.Component;
 import org.codehaus.plexus.logging.AbstractLogEnabled;
 
@@ -326,7 +327,7 @@ public class DefaultSearchEngine
         MultiReader multiReader =
             new MultiReader( contextsToSearch.toArray( new 
IndexReader[contextsToSearch.size()] ) );
 
-        IndexSearcher indexSearcher = new IndexSearcher( multiReader );
+        IndexSearcher indexSearcher = new NexusIndexSearcher( multiReader );
 
         // NEXUS-3482 made us to NOT use reverse ordering (it is a fix I 
wanted to implement, but user contributed patch
         // did come in faster! -- Thanks)

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexSearcher.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexSearcher.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexSearcher.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexSearcher.java
 Thu Dec  2 17:59:57 2010
@@ -40,12 +40,20 @@ public class NexusIndexSearcher
         this( indexingContext, indexingContext.getIndexReader() );
     }
 
+    public NexusIndexSearcher( final IndexReader reader )
+        throws IOException
+    {
+        this( null, reader );
+    }
+
     public NexusIndexSearcher( final IndexingContext indexingContext, final 
IndexReader reader )
         throws IOException
     {
         super( reader );
 
         this.indexingContext = indexingContext;
+
+        // setSimilarity( new NexusSimilarity() );
     }
 
     public IndexingContext getIndexingContext()

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/context/NexusIndexWriter.java
 Thu Dec  2 17:59:57 2010
@@ -40,15 +40,11 @@ public class NexusIndexWriter
     public NexusIndexWriter( final Directory directory, final Analyzer 
analyzer, boolean create )
         throws CorruptIndexException, LockObtainFailedException, IOException
     {
-        this( directory, analyzer, create, false /* autoCommit */);
-    }
-
-    public NexusIndexWriter( final Directory directory, final Analyzer 
analyzer, boolean create, boolean autoCommit )
-        throws CorruptIndexException, LockObtainFailedException, IOException
-    {
-        super( directory, autoCommit, analyzer, create );
+        super( directory, analyzer, create, MaxFieldLength.LIMITED );
 
         this.closed = false;
+
+        // setSimilarity( new NexusSimilarity() );
     }
 
     @Override

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/packer/DefaultIndexPacker.java
 Thu Dec  2 17:59:57 2010
@@ -45,6 +45,7 @@ import org.apache.maven.index.ArtifactIn
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.context.IndexUtils;
 import org.apache.maven.index.context.IndexingContext;
+import org.apache.maven.index.context.NexusIndexWriter;
 import org.apache.maven.index.context.NexusLegacyAnalyzer;
 import org.apache.maven.index.creator.LegacyDocumentUpdater;
 import org.apache.maven.index.incremental.IncrementalHandler;
@@ -291,7 +292,7 @@ public class DefaultIndexPacker
         IndexWriter w = null;
         try
         {
-            w = new IndexWriter( targetdir, false, new NexusLegacyAnalyzer(), 
true );
+            w = new NexusIndexWriter( targetdir, new NexusLegacyAnalyzer(), 
true );
 
             for ( int i = 0; i < r.maxDoc(); i++ )
             {

Modified: 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/main/java/org/apache/maven/index/updater/DefaultIndexUpdater.java
 Thu Dec  2 17:59:57 2010
@@ -350,7 +350,7 @@ public class DefaultIndexUpdater
         try
         {
             r = IndexReader.open( sourcedir );
-            w = new IndexWriter( targetdir, false, new NexusAnalyzer(), true );
+            w = new NexusIndexWriter( targetdir, new NexusAnalyzer(), true );
 
             for ( int i = 0; i < r.maxDoc(); i++ )
             {
@@ -404,7 +404,7 @@ public class DefaultIndexUpdater
         try
         {
             // analyzer is unimportant, since we are not adding/searching 
to/on index, only reading/deleting
-            w = new IndexWriter( directory, new NexusAnalyzer() );
+            w = new NexusIndexWriter( directory, new NexusAnalyzer(), true );
 
             w.optimize();
 

Modified: 
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
URL: 
http://svn.apache.org/viewvc/maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java?rev=1041505&r1=1041504&r2=1041505&view=diff
==============================================================================
--- 
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
 (original)
+++ 
maven/indexer/trunk/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
 Thu Dec  2 17:59:57 2010
@@ -24,6 +24,7 @@ import junit.framework.Assert;
 
 import org.apache.lucene.search.BooleanClause.Occur;
 import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.Explanation;
 import org.apache.lucene.search.Query;
 
 public class Nexus3881NexusIndexerTest
@@ -50,9 +51,18 @@ public class Nexus3881NexusIndexerTest
         bq.add( q1, Occur.SHOULD );
         bq.add( q2, Occur.SHOULD );
 
-        IteratorSearchResponse response = nexusIndexer.searchIterator( new 
IteratorSearchRequest( bq ) );
+        IteratorSearchRequest request = new IteratorSearchRequest( bq );
+        request.setLuceneExplain( true );
+        
+        IteratorSearchResponse response = nexusIndexer.searchIterator( request 
);
 
         Assert.assertEquals( "All artifacts has 'solution' in their GA!", 4, 
response.getTotalHits() );
+        
+        // for (ArtifactInfo ai : response) {
+        // System.out.println(ai.toString());
+        // System.out.println(ai.getAttributes().get( 
Explanation.class.getName() ));
+        // System.out.println();
+        // }
 
         float firstRel = response.getResults().next().getLuceneScore();
 


Reply via email to