Author: olamy
Date: Fri Aug 24 14:27:05 2012
New Revision: 1376938

URL: http://svn.apache.org/viewvc?rev=1376938&view=rev
Log:
change lucene query to treat user input as scored value and version as exact 
value

Modified:
    
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java

Modified: 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
URL: 
http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java?rev=1376938&r1=1376937&r2=1376938&view=diff
==============================================================================
--- 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
 (original)
+++ 
archiva/trunk/archiva-modules/archiva-base/archiva-indexer/src/main/java/org/apache/archiva/indexer/search/NexusRepositorySearch.java
 Fri Aug 24 14:27:05 2012
@@ -40,7 +40,9 @@ import org.apache.maven.index.OSGI;
 import org.apache.maven.index.context.IndexCreator;
 import org.apache.maven.index.context.IndexingContext;
 import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
+import org.apache.maven.index.expr.SourcedSearchExpression;
 import org.apache.maven.index.expr.StringSearchExpression;
+import org.apache.maven.index.expr.UserInputSearchExpression;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -152,95 +154,95 @@ public class NexusRepositorySearch
         BooleanQuery q = new BooleanQuery();
         if ( StringUtils.isNotBlank( searchFields.getGroupId() ) )
         {
-            q.add( indexer.constructQuery( MAVEN.GROUP_ID, new 
StringSearchExpression( searchFields.getGroupId() ) ),
+            q.add( indexer.constructQuery( MAVEN.GROUP_ID, new 
UserInputSearchExpression( searchFields.getGroupId() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getArtifactId() ) )
         {
             q.add(
-                indexer.constructQuery( MAVEN.ARTIFACT_ID, new 
StringSearchExpression( searchFields.getArtifactId() ) ),
+                indexer.constructQuery( MAVEN.ARTIFACT_ID, new 
UserInputSearchExpression( searchFields.getArtifactId() ) ),
                 Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getVersion() ) )
         {
-            q.add( indexer.constructQuery( MAVEN.VERSION, new 
StringSearchExpression( searchFields.getVersion() ) ),
+            q.add( indexer.constructQuery( MAVEN.VERSION, new 
SourcedSearchExpression( searchFields.getVersion() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getPackaging() ) )
         {
-            q.add( indexer.constructQuery( MAVEN.PACKAGING, new 
StringSearchExpression( searchFields.getPackaging() ) ),
+            q.add( indexer.constructQuery( MAVEN.PACKAGING, new 
UserInputSearchExpression( searchFields.getPackaging() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getClassName() ) )
         {
             q.add(
-                indexer.constructQuery( MAVEN.CLASSNAMES, new 
StringSearchExpression( searchFields.getClassName() ) ),
+                indexer.constructQuery( MAVEN.CLASSNAMES, new 
UserInputSearchExpression( searchFields.getClassName() ) ),
                 Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleSymbolicName() ) )
         {
             q.add( indexer.constructQuery( OSGI.SYMBOLIC_NAME,
-                                           new StringSearchExpression( 
searchFields.getBundleSymbolicName() ) ),
+                                           new UserInputSearchExpression( 
searchFields.getBundleSymbolicName() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleVersion() ) )
         {
             q.add(
-                indexer.constructQuery( OSGI.VERSION, new 
StringSearchExpression( searchFields.getBundleVersion() ) ),
+                indexer.constructQuery( OSGI.VERSION, new 
UserInputSearchExpression( searchFields.getBundleVersion() ) ),
                 Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleExportPackage() ) )
         {
             q.add( indexer.constructQuery( OSGI.EXPORT_PACKAGE,
-                                           new StringSearchExpression( 
searchFields.getBundleExportPackage() ) ),
+                                           new UserInputSearchExpression( 
searchFields.getBundleExportPackage() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleExportService() ) )
         {
             q.add( indexer.constructQuery( OSGI.EXPORT_SERVICE,
-                                           new StringSearchExpression( 
searchFields.getBundleExportService() ) ),
+                                           new UserInputSearchExpression( 
searchFields.getBundleExportService() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleImportPackage() ) )
         {
             q.add( indexer.constructQuery( OSGI.IMPORT_PACKAGE,
-                                           new StringSearchExpression( 
searchFields.getBundleImportPackage() ) ),
+                                           new UserInputSearchExpression( 
searchFields.getBundleImportPackage() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleName() ) )
         {
-            q.add( indexer.constructQuery( OSGI.NAME, new 
StringSearchExpression( searchFields.getBundleName() ) ),
+            q.add( indexer.constructQuery( OSGI.NAME, new 
UserInputSearchExpression( searchFields.getBundleName() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleImportPackage() ) )
         {
             q.add( indexer.constructQuery( OSGI.IMPORT_PACKAGE,
-                                           new StringSearchExpression( 
searchFields.getBundleImportPackage() ) ),
+                                           new UserInputSearchExpression( 
searchFields.getBundleImportPackage() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getBundleRequireBundle() ) )
         {
             q.add( indexer.constructQuery( OSGI.REQUIRE_BUNDLE,
-                                           new StringSearchExpression( 
searchFields.getBundleRequireBundle() ) ),
+                                           new UserInputSearchExpression( 
searchFields.getBundleRequireBundle() ) ),
                    Occur.MUST );
         }
 
         if ( StringUtils.isNotBlank( searchFields.getClassifier() ) )
         {
             q.add(
-                indexer.constructQuery( MAVEN.CLASSIFIER, new 
StringSearchExpression( searchFields.getClassifier() ) ),
+                indexer.constructQuery( MAVEN.CLASSIFIER, new 
UserInputSearchExpression( searchFields.getClassifier() ) ),
                 Occur.MUST );
         }
 
@@ -308,11 +310,11 @@ public class NexusRepositorySearch
 
     private void constructQuery( String term, BooleanQuery q )
     {
-        q.add( indexer.constructQuery( MAVEN.GROUP_ID, new 
StringSearchExpression( term ) ), Occur.SHOULD );
-        q.add( indexer.constructQuery( MAVEN.ARTIFACT_ID, new 
StringSearchExpression( term ) ), Occur.SHOULD );
-        q.add( indexer.constructQuery( MAVEN.VERSION, new 
StringSearchExpression( term ) ), Occur.SHOULD );
-        q.add( indexer.constructQuery( MAVEN.PACKAGING, new 
StringSearchExpression( term ) ), Occur.SHOULD );
-        q.add( indexer.constructQuery( MAVEN.CLASSNAMES, new 
StringSearchExpression( term ) ), Occur.SHOULD );
+        q.add( indexer.constructQuery( MAVEN.GROUP_ID, new 
UserInputSearchExpression( term ) ), Occur.SHOULD );
+        q.add( indexer.constructQuery( MAVEN.ARTIFACT_ID, new 
UserInputSearchExpression( term ) ), Occur.SHOULD );
+        q.add( indexer.constructQuery( MAVEN.VERSION, new 
UserInputSearchExpression( term ) ), Occur.SHOULD );
+        q.add( indexer.constructQuery( MAVEN.PACKAGING, new 
UserInputSearchExpression( term ) ), Occur.SHOULD );
+        q.add( indexer.constructQuery( MAVEN.CLASSNAMES, new 
UserInputSearchExpression( term ) ), Occur.SHOULD );
 
         //Query query =
         //    new WildcardQuery( new Term( MAVEN.CLASSNAMES.getFieldName(), 
"*" ) );


Reply via email to