You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2019/04/17 18:27:26 UTC
[maven-indexer] 01/01: [MINDEXER-115] Migrate to
BooleanQuery.Builder
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch MINDEXER-115
in repository https://gitbox.apache.org/repos/asf/maven-indexer.git
commit dbc981d2269a539c782a70e6016b5a2acbc4cb0e
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Sat Apr 6 22:08:18 2019 +0200
[MINDEXER-115] Migrate to BooleanQuery.Builder
Remove deprecated usages of BooleanQuery constructor - use Builder
Based on Sopot Cela changes
---
.../apache/maven/index/DefaultQueryCreator.java | 39 ++++++----------
.../java/org/apache/maven/index/NexusIndexer.java | 9 ++--
.../maven/index/treeview/DefaultIndexTreeView.java | 11 ++---
.../maven/index/DefaultIndexNexusIndexerTest.java | 35 ++++----------
.../maven/index/FullIndexNexusIndexerTest.java | 20 +++-----
.../maven/index/Nexus13NexusIndexerTest.java | 6 ---
.../maven/index/Nexus3881NexusIndexerTest.java | 12 ++---
.../org/apache/maven/index/NexusIndexerTest.java | 28 +++++------
.../maven/index/SearchWithAnEmptyIndexTest.java | 53 ++++++++-------------
.../creator/OsgiArtifactIndexCreatorTest.java | 54 ++++++++--------------
.../resources/testQueryCreatorNGSearch/case01.txt | 2 +-
.../resources/testQueryCreatorNGSearch/case05.txt | 2 +-
.../maven/indexer/examples/BasicUsageExample.java | 44 +++++++++---------
.../examples/indexing/RepositoryIndexer.java | 21 +++++----
14 files changed, 138 insertions(+), 198 deletions(-)
diff --git a/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java b/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
index 63a2196..8fab44b 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/DefaultQueryCreator.java
@@ -30,6 +30,7 @@ import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.queryparser.classic.QueryParser.Operator;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
+import org.apache.lucene.search.BoostQuery;
import org.apache.lucene.search.PrefixQuery;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TermQuery;
@@ -280,19 +281,12 @@ public class DefaultQueryCreator
}
else
{
- BooleanQuery bq = new BooleanQuery();
-
Term t = new Term( indexerField.getKey(), query );
-
- bq.add( new TermQuery( t ), Occur.SHOULD );
-
- PrefixQuery pq = new PrefixQuery( t );
- pq.setBoost( 0.8f );
-
- bq.add( pq, Occur.SHOULD );
-
- return bq;
- }
+ return new BooleanQuery.Builder()
+ .add( new TermQuery( t ), Occur.SHOULD )
+ .add( new BoostQuery( new PrefixQuery( t ), 0.8f ), Occur.SHOULD )
+ .build();
+ }
}
else
{
@@ -326,13 +320,12 @@ public class DefaultQueryCreator
{
// qpQuery = "\"" + qpQuery + "\"";
- BooleanQuery q1 = new BooleanQuery();
-
- q1.add( qp.parse( qpQuery ), Occur.SHOULD );
+ BooleanQuery.Builder q1b = new BooleanQuery.Builder()
+ .add( qp.parse( qpQuery ), Occur.SHOULD );
if ( qpQuery.contains( " " ) )
{
- q1.add( qp.parse( "\"" + qpQuery + "\"" ), Occur.SHOULD );
+ q1b.add( qp.parse( "\"" + qpQuery + "\"" ), Occur.SHOULD );
}
Query q2 = null;
@@ -353,17 +346,15 @@ public class DefaultQueryCreator
if ( q2 == null )
{
- return q1;
+ return q1b.build();
}
else
{
- BooleanQuery bq = new BooleanQuery();
-
- // trick with order
- bq.add( q2, Occur.SHOULD );
- bq.add( q1, Occur.SHOULD );
-
- return bq;
+ return new BooleanQuery.Builder()
+ // trick with order
+ .add( q2, Occur.SHOULD )
+ .add( q1b.build(), Occur.SHOULD )
+ .build();
}
}
catch ( ParseException e )
diff --git a/indexer-core/src/main/java/org/apache/maven/index/NexusIndexer.java b/indexer-core/src/main/java/org/apache/maven/index/NexusIndexer.java
index ab0678f..d3996d5 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/NexusIndexer.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/NexusIndexer.java
@@ -63,10 +63,11 @@ import org.apache.maven.index.expr.SearchExpression;
*
* <pre>
* // run search query
- * BooleanQuery q = new BooleanQuery();
- * q.add(indexer.constructQuery(ArtifactInfo.GROUP_ID, term), Occur.SHOULD);
- * q.add(indexer.constructQuery(ArtifactInfo.ARTIFACT_ID, term), Occur.SHOULD);
- * q.add(new PrefixQuery(new Term(ArtifactInfo.SHA1, term)), Occur.SHOULD);
+ * BooleanQuery q = new BooleanQuery.Builder()
+ * .add(indexer.constructQuery(ArtifactInfo.GROUP_ID, term), Occur.SHOULD)
+ * .add(indexer.constructQuery(ArtifactInfo.ARTIFACT_ID, term), Occur.SHOULD)
+ * .add(new PrefixQuery(new Term(ArtifactInfo.SHA1, term)), Occur.SHOULD)
+ * .build();
*
* FlatSearchRequest request = new FlatSearchRequest(q);
* FlatSearchResponse response = indexer.searchFlat(request);
diff --git a/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java b/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
index 61f450c..d1a4490 100644
--- a/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
+++ b/indexer-core/src/main/java/org/apache/maven/index/treeview/DefaultIndexTreeView.java
@@ -518,21 +518,20 @@ public class DefaultIndexTreeView
versionQ = getIndexer().constructQuery( MAVEN.VERSION, new SourcedSearchExpression( v ) );
}
- BooleanQuery q = new BooleanQuery();
-
- q.add( new BooleanClause( groupIdQ, BooleanClause.Occur.MUST ) );
+ BooleanQuery.Builder qb = new BooleanQuery.Builder()
+ .add( new BooleanClause( groupIdQ, BooleanClause.Occur.MUST ) );
if ( artifactIdQ != null )
{
- q.add( new BooleanClause( artifactIdQ, BooleanClause.Occur.MUST ) );
+ qb.add( new BooleanClause( artifactIdQ, BooleanClause.Occur.MUST ) );
}
if ( versionQ != null )
{
- q.add( new BooleanClause( versionQ, BooleanClause.Occur.MUST ) );
+ qb.add( new BooleanClause( versionQ, BooleanClause.Occur.MUST ) );
}
- IteratorSearchRequest searchRequest = new IteratorSearchRequest( q, request.getArtifactInfoFilter() );
+ IteratorSearchRequest searchRequest = new IteratorSearchRequest( qb.build(), request.getArtifactInfoFilter() );
searchRequest.getContexts().add( request.getIndexingContext() );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
index e049496..35836af 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/DefaultIndexNexusIndexerTest.java
@@ -29,11 +29,11 @@ import java.util.List;
import java.util.Set;
import org.apache.lucene.index.Term;
-import org.apache.lucene.search.FilteredQuery;
+import org.apache.lucene.search.BooleanClause.Occur;
+import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PrefixQuery;
import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
@@ -64,18 +64,10 @@ public class DefaultIndexNexusIndexerTest
public void testPlugin()
throws Exception
{
- // String term = "plugin";
- // String term = "maven-core-it-plugin";
- String term = "org.apache.maven.plugins";
-
- // Query bq = new TermQuery(new Term(ArtifactInfo.GROUP_ID, "org.apache.maven.plugins"));
- // Query bq = new TermQuery(new Term(ArtifactInfo.ARTIFACT_ID, term));
- Query bq = new PrefixQuery( new Term( ArtifactInfo.GROUP_ID, term ) );
- // BooleanQuery bq = new BooleanQuery();
- // bq.add(new PrefixQuery(new Term(ArtifactInfo.GROUP_ID, term + "*")), Occur.SHOULD);
- // bq.add(new PrefixQuery(new Term(ArtifactInfo.ARTIFACT_ID, term + "*")), Occur.SHOULD);
- TermQuery tq = new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-plugin" ) );
- Query query = new FilteredQuery( tq, new QueryWrapperFilter( bq ) );
+ Query query = new BooleanQuery.Builder()
+ .add( new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-plugin" ) ), Occur.MUST )
+ .add( new PrefixQuery( new Term( ArtifactInfo.GROUP_ID, "org.apache.maven.plugins" ) ), Occur.FILTER )
+ .build();
FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest( query ) );
@@ -119,12 +111,6 @@ public class DefaultIndexNexusIndexerTest
public void testSearchArchetypes()
throws Exception
{
- // TermQuery tq = new TermQuery(new Term(ArtifactInfo.PACKAGING, "maven-archetype"));
- // BooleanQuery bq = new BooleanQuery();
- // bq.add(new WildcardQuery(new Term(ArtifactInfo.GROUP_ID, term + "*")), Occur.SHOULD);
- // bq.add(new WildcardQuery(new Term(ArtifactInfo.ARTIFACT_ID, term + "*")), Occur.SHOULD);
- // FilteredQuery query = new FilteredQuery(tq, new QueryWrapperFilter(bq));
-
Query q = new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-archetype" ) );
FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest( q ) );
Collection<ArtifactInfo> r = response.getResults();
@@ -240,11 +226,10 @@ public class DefaultIndexNexusIndexerTest
public void testArchetype()
throws Exception
{
- String term = "proptest";
-
- Query bq = new PrefixQuery( new Term( ArtifactInfo.GROUP_ID, term ) );
- TermQuery tq = new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-archetype" ) );
- Query query = new FilteredQuery( tq, new QueryWrapperFilter( bq ) );
+ Query query = new BooleanQuery.Builder()
+ .add( new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-archetype" ) ), Occur.MUST )
+ .add( new PrefixQuery( new Term( ArtifactInfo.GROUP_ID, "proptest" ) ), Occur.FILTER )
+ .build();
FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest( query ) );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
index 0c5e140..db69e47 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/FullIndexNexusIndexerTest.java
@@ -19,8 +19,6 @@ package org.apache.maven.index;
* under the License.
*/
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
import java.io.File;
import java.nio.file.Files;
import java.util.ArrayList;
@@ -33,16 +31,14 @@ import java.util.Set;
import org.apache.lucene.index.Term;
import org.apache.lucene.queryparser.classic.ParseException;
-import org.apache.lucene.search.FilteredQuery;
+import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.PrefixQuery;
import org.apache.lucene.search.Query;
-import org.apache.lucene.search.QueryWrapperFilter;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.maven.index.context.IndexingContext;
-import org.apache.maven.index.packer.DefaultIndexPacker;
import org.apache.maven.index.packer.IndexPacker;
import org.apache.maven.index.packer.IndexPackingRequest;
import org.apache.maven.index.search.grouping.GAGrouping;
@@ -51,6 +47,7 @@ import org.apache.maven.index.updater.DefaultIndexUpdater;
import org.apache.maven.index.updater.IndexUpdateRequest;
import org.apache.maven.index.updater.IndexUpdater;
+import static org.apache.lucene.search.BooleanClause.*;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
@@ -294,12 +291,6 @@ public class FullIndexNexusIndexerTest
public void testSearchArchetypes()
throws Exception
{
- // TermQuery tq = new TermQuery(new Term(ArtifactInfo.PACKAGING, "maven-archetype"));
- // BooleanQuery bq = new BooleanQuery();
- // bq.add(new WildcardQuery(new Term(ArtifactInfo.GROUP_ID, term + "*")), Occur.SHOULD);
- // bq.add(new WildcardQuery(new Term(ArtifactInfo.ARTIFACT_ID, term + "*")), Occur.SHOULD);
- // FilteredQuery query = new FilteredQuery(tq, new QueryWrapperFilter(bq));
-
Query q = new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-archetype" ) );
FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest( q ) );
Collection<ArtifactInfo> r = response.getResults();
@@ -418,9 +409,12 @@ public class FullIndexNexusIndexerTest
Query bq = new PrefixQuery( new Term( ArtifactInfo.GROUP_ID, term ) );
TermQuery tq = new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-archetype" ) );
- Query query = new FilteredQuery( tq, new QueryWrapperFilter( bq ) );
- FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest( query ) );
+ FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest(
+ new BooleanQuery.Builder()
+ .add(tq, Occur.MUST)
+ .add(bq, Occur.FILTER)
+ .build() ) );
Collection<ArtifactInfo> r = response.getResults();
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
index f520a9e..e848270 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus13NexusIndexerTest.java
@@ -91,12 +91,6 @@ public class Nexus13NexusIndexerTest
public void testSearchArchetypes()
throws Exception
{
- // TermQuery tq = new TermQuery(new Term(ArtifactInfo.PACKAGING, "maven-archetype"));
- // BooleanQuery bq = new BooleanQuery();
- // bq.add(new WildcardQuery(new Term(ArtifactInfo.GROUP_ID, term + "*")), Occur.SHOULD);
- // bq.add(new WildcardQuery(new Term(ArtifactInfo.ARTIFACT_ID, term + "*")), Occur.SHOULD);
- // FilteredQuery query = new FilteredQuery(tq, new QueryWrapperFilter(bq));
-
Query q = new TermQuery( new Term( ArtifactInfo.PACKAGING, "maven-archetype" ) );
FlatSearchResponse response = nexusIndexer.searchFlat( new FlatSearchRequest( q ) );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
index 09988a0..99e00d1 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/Nexus3881NexusIndexerTest.java
@@ -25,7 +25,6 @@ import junit.framework.Assert;
import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
-import org.apache.lucene.search.Query;
public class Nexus3881NexusIndexerTest
extends AbstractNexusIndexerTest
@@ -44,14 +43,11 @@ public class Nexus3881NexusIndexerTest
public void testRelevances()
throws Exception
{
- Query q1 = nexusIndexer.constructQuery( MAVEN.GROUP_ID, "solution", SearchType.SCORED );
- Query q2 = nexusIndexer.constructQuery( MAVEN.ARTIFACT_ID, "solution", SearchType.SCORED );
+ IteratorSearchRequest request = new IteratorSearchRequest( new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( MAVEN.GROUP_ID, "solution", SearchType.SCORED ), Occur.SHOULD )
+ .add( nexusIndexer.constructQuery( MAVEN.ARTIFACT_ID, "solution", SearchType.SCORED ), Occur.SHOULD )
+ .build() );
- BooleanQuery bq = new BooleanQuery();
- bq.add( q1, Occur.SHOULD );
- bq.add( q2, Occur.SHOULD );
-
- IteratorSearchRequest request = new IteratorSearchRequest( bq );
request.setLuceneExplain( true );
IteratorSearchResponse response = nexusIndexer.searchIterator( request );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java b/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
index 21d1f92..33a3ff1 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/NexusIndexerTest.java
@@ -49,7 +49,6 @@ import org.apache.maven.index.context.MergedIndexingContext;
import org.apache.maven.index.context.StaticContextMemberProvider;
import org.apache.maven.index.context.UnsupportedExistingLuceneIndexException;
import org.apache.maven.index.creator.MinimalArtifactInfoIndexCreator;
-import org.apache.maven.index.packer.DefaultIndexPacker;
import org.apache.maven.index.packer.IndexPacker;
import org.apache.maven.index.packer.IndexPackingRequest;
import org.apache.maven.index.search.grouping.GAGrouping;
@@ -119,13 +118,13 @@ public class NexusIndexerTest
// scored search against field having untokenized indexerField only
q = indexer.constructQuery( MAVEN.PACKAGING, "maven-archetype", SearchType.SCORED );
- assertEquals( "p:maven-archetype p:maven-archetype*", q.toString() );
+ assertEquals( "p:maven-archetype p:maven-archetype*^0.8", q.toString() );
// scored search against field having untokenized indexerField only
q = indexer.constructQuery( MAVEN.ARTIFACT_ID, "commons-logging", SearchType.SCORED );
assertEquals(
- "(a:commons-logging a:commons-logging*) ((+artifactId:commons +artifactId:logging*) artifactId:\"commons logging\")",
+ "(a:commons-logging a:commons-logging*^0.8) ((+artifactId:commons +artifactId:logging*) artifactId:\"commons logging\")",
q.toString() );
// scored search against field having tokenized IndexerField only (should be impossible).
@@ -227,7 +226,6 @@ public class NexusIndexerTest
// and comes the "trick", i will perform single _selection_!
// I want to ensure there is an artifact present!
// explanation: see for yourself ;)
- BooleanQuery bq = new BooleanQuery();
Query g = indexer.constructQuery( MAVEN.GROUP_ID, "commons-logging", SearchType.EXACT );
Query a = indexer.constructQuery( MAVEN.ARTIFACT_ID, "commons-logging", SearchType.EXACT );
@@ -236,11 +234,13 @@ public class NexusIndexerTest
Query c = indexer.constructQuery( MAVEN.CLASSIFIER, Field.NOT_PRESENT, SearchType.EXACT );
// so, I am looking up GAVP (for content of those look above) that _has no_ classifier
- bq.add( g, Occur.MUST );
- bq.add( a, Occur.MUST );
- bq.add( v, Occur.MUST );
- bq.add( p, Occur.MUST );
- bq.add( c, Occur.MUST_NOT );
+ BooleanQuery bq = new BooleanQuery.Builder()
+ .add( g, Occur.MUST )
+ .add( a, Occur.MUST )
+ .add( v, Occur.MUST )
+ .add( p, Occur.MUST )
+ .add( c, Occur.MUST_NOT )
+ .build();
// invoking the old method (was present since day 1), that will return the match only and if only there is 1 hit
Collection<ArtifactInfo> ais = indexer.identify( bq, Collections.singletonList( context ) );
@@ -443,10 +443,12 @@ public class NexusIndexerTest
}
{
- BooleanQuery bq = new BooleanQuery( true );
- bq.add( new WildcardQuery( new Term( ArtifactInfo.GROUP_ID, "testng*" ) ), Occur.SHOULD );
- bq.add( new WildcardQuery( new Term( ArtifactInfo.ARTIFACT_ID, "testng*" ) ), Occur.SHOULD );
- bq.setMinimumNumberShouldMatch( 1 );
+ BooleanQuery bq = new BooleanQuery.Builder()
+ .setDisableCoord( true )
+ .add( new WildcardQuery( new Term( ArtifactInfo.GROUP_ID, "testng*" ) ), Occur.SHOULD )
+ .add( new WildcardQuery( new Term( ArtifactInfo.ARTIFACT_ID, "testng*" ) ), Occur.SHOULD )
+ .setMinimumNumberShouldMatch( 1 )
+ .build();
FlatSearchResponse response = indexer.searchFlat( new FlatSearchRequest( bq ) );
Set<ArtifactInfo> r = response.getResults();
diff --git a/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java b/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
index ad10a1d..7d86320 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/SearchWithAnEmptyIndexTest.java
@@ -19,7 +19,6 @@ package org.apache.maven.index;
* under the License.
*/
-import org.apache.lucene.search.BooleanClause;
import org.apache.lucene.search.BooleanQuery;
import org.apache.lucene.search.IndexSearcher;
import org.apache.maven.index.context.IndexCreator;
@@ -34,6 +33,8 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
+import static org.apache.lucene.search.BooleanClause.*;
+
/**
* @author Olivier Lamy
*/
@@ -89,11 +90,9 @@ public class SearchWithAnEmptyIndexTest
try
{
- BooleanQuery q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME,
- new StringSearchExpression( "org.apache.karaf.features.command" ) ),
- BooleanClause.Occur.MUST );
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME, new StringSearchExpression( "org.apache.karaf.features.command" ) ), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest( q );
assertEquals( 2, nexusIndexer.getIndexingContexts().values().size() );
@@ -104,11 +103,9 @@ public class SearchWithAnEmptyIndexTest
assertEquals( 1, response.getResults().size() );
- q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME,
- new StringSearchExpression( "org.apache.karaf.features.core" ) ),
- BooleanClause.Occur.MUST );
+ q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME, new StringSearchExpression( "org.apache.karaf.features.core" ) ), Occur.MUST )
+ .build();
request = new FlatSearchRequest( q );
request.setContexts( new ArrayList( nexusIndexer.getIndexingContexts().values() ) );
@@ -119,18 +116,13 @@ public class SearchWithAnEmptyIndexTest
String term = "org.apache.karaf.features";
- q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( MAVEN.GROUP_ID, new StringSearchExpression( term ) ),
- BooleanClause.Occur.SHOULD );
- q.add( nexusIndexer.constructQuery( MAVEN.ARTIFACT_ID, new StringSearchExpression( term ) ),
- BooleanClause.Occur.SHOULD );
- q.add( nexusIndexer.constructQuery( MAVEN.VERSION, new StringSearchExpression( term ) ),
- BooleanClause.Occur.SHOULD );
- q.add( nexusIndexer.constructQuery( MAVEN.PACKAGING, new StringSearchExpression( term ) ),
- BooleanClause.Occur.SHOULD );
- q.add( nexusIndexer.constructQuery( MAVEN.CLASSNAMES, new StringSearchExpression( term ) ),
- BooleanClause.Occur.SHOULD );
+ q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( MAVEN.GROUP_ID, new StringSearchExpression( term ) ), Occur.SHOULD )
+ .add( nexusIndexer.constructQuery( MAVEN.ARTIFACT_ID, new StringSearchExpression( term ) ), Occur.SHOULD )
+ .add( nexusIndexer.constructQuery( MAVEN.VERSION, new StringSearchExpression( term ) ), Occur.SHOULD )
+ .add( nexusIndexer.constructQuery( MAVEN.PACKAGING, new StringSearchExpression( term ) ), Occur.SHOULD )
+ .add( nexusIndexer.constructQuery( MAVEN.CLASSNAMES, new StringSearchExpression( term ) ), Occur.SHOULD )
+ .build();
request = new FlatSearchRequest( q );
request.setContexts( new ArrayList( nexusIndexer.getIndexingContexts().values() ) );
@@ -173,16 +165,11 @@ public class SearchWithAnEmptyIndexTest
try
{
- BooleanQuery q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( MAVEN.GROUP_ID, new StringSearchExpression( "commons-cli" ) ),
- BooleanClause.Occur.MUST );
-
- q.add( nexusIndexer.constructQuery( MAVEN.PACKAGING, new StringSearchExpression( "jar" ) ),
- BooleanClause.Occur.MUST );
-
- q.add( nexusIndexer.constructQuery( MAVEN.CLASSIFIER, new StringSearchExpression( "sources" ) ),
- BooleanClause.Occur.MUST );
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( MAVEN.GROUP_ID, new StringSearchExpression( "commons-cli" ) ), Occur.MUST )
+ .add( nexusIndexer.constructQuery( MAVEN.PACKAGING, new StringSearchExpression( "jar" ) ), Occur.MUST )
+ .add( nexusIndexer.constructQuery( MAVEN.CLASSIFIER, new StringSearchExpression( "sources" ) ), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest( q );
assertEquals( 2, nexusIndexer.getIndexingContexts().values().size() );
diff --git a/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java b/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
index 5117544..f90224e 100644
--- a/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
+++ b/indexer-core/src/test/java/org/apache/maven/index/creator/OsgiArtifactIndexCreatorTest.java
@@ -22,7 +22,7 @@ package org.apache.maven.index.creator;
import java.io.File;
import java.util.Arrays;
import java.util.List;
-import org.apache.lucene.search.BooleanClause;
+import org.apache.lucene.search.BooleanClause.Occur;
import org.apache.lucene.search.BooleanQuery;
import org.apache.maven.index.ArtifactContext;
import org.apache.maven.index.ArtifactInfo;
@@ -193,11 +193,9 @@ public class OsgiArtifactIndexCreatorTest
{
indexOSGIRepo();
- BooleanQuery q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME,
- new StringSearchExpression( "org.apache.karaf.features.command" ) ),
- BooleanClause.Occur.MUST );
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME, new StringSearchExpression( "org.apache.karaf.features.command" ) ), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest( q );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
@@ -205,11 +203,9 @@ public class OsgiArtifactIndexCreatorTest
// here only one results !
assertEquals( 1, response.getResults().size() );
- q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME,
- new StringSearchExpression( "org.apache.karaf.features.core" ) ),
- BooleanClause.Occur.MUST );
+ q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME, new StringSearchExpression( "org.apache.karaf.features.core" ) ), Occur.MUST )
+ .build();
request = new FlatSearchRequest( q );
response = nexusIndexer.searchFlat( request );
@@ -232,14 +228,10 @@ public class OsgiArtifactIndexCreatorTest
try
{
- BooleanQuery q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME,
- new StringSearchExpression( "org.apache.karaf.features.core" ) ),
- BooleanClause.Occur.MUST );
-
- q.add( nexusIndexer.constructQuery( OSGI.VERSION, new StringSearchExpression( "2.2.1" ) ),
- BooleanClause.Occur.MUST );
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.SYMBOLIC_NAME, new StringSearchExpression( "org.apache.karaf.features.core" ) ), Occur.MUST )
+ .add( nexusIndexer.constructQuery( OSGI.VERSION, new StringSearchExpression( "2.2.1" ) ), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest( q );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
@@ -261,11 +253,9 @@ public class OsgiArtifactIndexCreatorTest
try {
- BooleanQuery q = new BooleanQuery();
-
-
- q.add(nexusIndexer.constructQuery(OSGI.SHA256, new StringSearchExpression(CORE_4_1_0_SHA256)),
- BooleanClause.Occur.MUST);
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add(nexusIndexer.constructQuery( OSGI.SHA256, new StringSearchExpression(CORE_4_1_0_SHA256)), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest(q);
FlatSearchResponse response = nexusIndexer.searchFlat(request);
@@ -290,11 +280,9 @@ public class OsgiArtifactIndexCreatorTest
try
{
-
- BooleanQuery q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.EXPORT_PACKAGE, new StringSearchExpression(
- "org.apache.karaf.features.command.completers" ) ), BooleanClause.Occur.MUST );
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.EXPORT_PACKAGE, new StringSearchExpression( "org.apache.karaf.features.command.completers" ) ), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest( q );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
@@ -336,11 +324,9 @@ public class OsgiArtifactIndexCreatorTest
try
{
-
- BooleanQuery q = new BooleanQuery();
-
- q.add( nexusIndexer.constructQuery( OSGI.EXPORT_SERVICE, new StringSearchExpression(
- "org.apache.felix.bundlerepository.RepositoryAdmin" ) ), BooleanClause.Occur.MUST );
+ BooleanQuery q = new BooleanQuery.Builder()
+ .add( nexusIndexer.constructQuery( OSGI.EXPORT_SERVICE, new StringSearchExpression( "org.apache.felix.bundlerepository.RepositoryAdmin" ) ), Occur.MUST )
+ .build();
FlatSearchRequest request = new FlatSearchRequest( q );
FlatSearchResponse response = nexusIndexer.searchFlat( request );
diff --git a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt
index ece9199..17691d9 100644
--- a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt
+++ b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case01.txt
@@ -1,4 +1,4 @@
-### Searched for field urn:maven#groupId (with 2 registered index fields) using query "commons-logg" (QC create LQL "(g:commons-logg g:commons-logg*) ((+groupId:commons +groupId:logg*) groupId:"commons logg")")
+### Searched for field urn:maven#groupId (with 2 registered index fields) using query "commons-logg" (QC create LQL "(g:commons-logg g:commons-logg*^0.8) ((+groupId:commons +groupId:logg*) groupId:"commons logg")")
test :: commons-logging:commons-logging:1.1:null:jar
test :: commons-logging:commons-logging:1.1:sources:jar
test :: commons-logging:commons-logging:1.0.4:null:jar
diff --git a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt
index 511516e..bd52ac6 100644
--- a/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt
+++ b/indexer-core/src/test/resources/testQueryCreatorNGSearch/case05.txt
@@ -1,4 +1,4 @@
-### Searched for field urn:maven#version (with 2 registered index fields) using query "1.0" (QC create LQL "(v:1.0 v:1.0*) ((+version:1 +version:0*) version:"1 0")")
+### Searched for field urn:maven#version (with 2 registered index fields) using query "1.0" (QC create LQL "(v:1.0 v:1.0*^0.8) ((+version:1 +version:0*) version:"1 0")")
test :: proptest:proptest-archetype:1.0:null:maven-archetype
test :: org.apache.maven.plugins:maven-core-it-plugin:1.0:null:maven-plugin
test :: org.apache.maven.plugins:maven-core-it-plugin:1.0:sources:jar
diff --git a/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java b/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java
index 6bdf666..808f3d5 100644
--- a/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java
+++ b/indexer-examples/indexer-examples-basic/src/main/java/org/apache/maven/indexer/examples/BasicUsageExample.java
@@ -233,16 +233,16 @@ public class BasicUsageExample
indexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.sonatype.nexus" ) );
final Query artifactIdQ =
indexer.constructQuery( MAVEN.ARTIFACT_ID, new SourcedSearchExpression( "nexus-api" ) );
- final BooleanQuery query = new BooleanQuery();
- query.add( groupIdQ, Occur.MUST );
- query.add( artifactIdQ, Occur.MUST );
- // we want "jar" artifacts only
- query.add( indexer.constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( "jar" ) ), Occur.MUST );
- // we want main artifacts only (no classifier)
- // Note: this below is unfinished API, needs fixing
- query.add( indexer.constructQuery( MAVEN.CLASSIFIER, new SourcedSearchExpression( Field.NOT_PRESENT ) ),
- Occur.MUST_NOT );
+ final BooleanQuery query = new BooleanQuery.Builder()
+ .add( groupIdQ, Occur.MUST )
+ .add( artifactIdQ, Occur.MUST )
+ // we want "jar" artifacts only
+ .add( indexer.constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( "jar" ) ), Occur.MUST )
+ // we want main artifacts only (no classifier)
+ // Note: this below is unfinished API, needs fixing
+ .add( indexer.constructQuery( MAVEN.CLASSIFIER, new SourcedSearchExpression( Field.NOT_PRESENT ) ), Occur.MUST_NOT )
+ .build();
// construct the filter to express "V greater than"
final ArtifactInfoFilter versionFilter = new ArtifactInfoFilter()
@@ -280,18 +280,19 @@ public class BasicUsageExample
indexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.apache.maven.indexer" ) );
Query aidQ = indexer.constructQuery( MAVEN.ARTIFACT_ID, new SourcedSearchExpression( "indexer-artifact" ) );
- BooleanQuery bq = new BooleanQuery();
- bq.add( gidQ, Occur.MUST );
- bq.add( aidQ, Occur.MUST );
+ BooleanQuery bq = new BooleanQuery.Builder()
+ .add( gidQ, Occur.MUST )
+ .add( aidQ, Occur.MUST )
+ .build();
searchAndDump( indexer, "all artifacts under GA org.apache.maven.indexer:indexer-artifact", bq );
// Searching for some main artifact
- bq = new BooleanQuery();
- bq.add( gidQ, Occur.MUST );
- bq.add( aidQ, Occur.MUST );
- // bq.add( nexusIndexer.constructQuery( MAVEN.CLASSIFIER, new SourcedSearchExpression( "*" ) ), Occur.MUST_NOT
- // );
+ bq = new BooleanQuery.Builder()
+ .add( gidQ, Occur.MUST )
+ .add( aidQ, Occur.MUST )
+// .add( indexer.constructQuery( MAVEN.CLASSIFIER, new SourcedSearchExpression( "*" ) ), Occur.MUST_NOT )
+ .build();
searchAndDump( indexer, "main artifacts under GA org.apache.maven.indexer:indexer-artifact", bq );
@@ -311,10 +312,11 @@ public class BasicUsageExample
new UserInputSearchExpression( "DefaultNexusIndexer" ) ) );
// doing search for all "canonical" maven plugins latest versions
- bq = new BooleanQuery();
- bq.add( indexer.constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( "maven-plugin" ) ), Occur.MUST );
- bq.add( indexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.apache.maven.plugins" ) ),
- Occur.MUST );
+ bq = new BooleanQuery.Builder()
+ .add( indexer.constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( "maven-plugin" ) ), Occur.MUST )
+ .add( indexer.constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( "org.apache.maven.plugins" ) ), Occur.MUST )
+ .build();
+
searchGroupedAndDump( indexer, "all \"canonical\" maven plugins", bq, new GAGrouping() );
// doing search for all archetypes latest versions
diff --git a/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java b/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java
index a9dbf1b..c4969dd 100644
--- a/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java
+++ b/indexer-examples/indexer-examples-spring/src/main/java/org/apache/maven/indexer/examples/indexing/RepositoryIndexer.java
@@ -116,40 +116,42 @@ public class RepositoryIndexer
final String packaging, final String classifier )
throws IOException
{
- final BooleanQuery query = new BooleanQuery();
+ final BooleanQuery.Builder queryBuilder = new BooleanQuery.Builder();
if ( groupId != null )
{
- query.add( getIndexer().constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( groupId ) ), MUST );
+ queryBuilder.add( getIndexer().constructQuery( MAVEN.GROUP_ID, new SourcedSearchExpression( groupId ) ), MUST );
}
if ( artifactId != null )
{
- query.add( getIndexer().constructQuery( MAVEN.ARTIFACT_ID, new SourcedSearchExpression( artifactId ) ),
+ queryBuilder.add( getIndexer().constructQuery( MAVEN.ARTIFACT_ID, new SourcedSearchExpression( artifactId ) ),
MUST );
}
if ( version != null )
{
- query.add( getIndexer().constructQuery( MAVEN.VERSION, new SourcedSearchExpression( version ) ), MUST );
+ queryBuilder.add( getIndexer().constructQuery( MAVEN.VERSION, new SourcedSearchExpression( version ) ), MUST );
}
if ( packaging != null )
{
- query.add( getIndexer().constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( packaging ) ), MUST );
+ queryBuilder.add( getIndexer().constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( packaging ) ), MUST );
}
else
{
// Fallback to jar
- query.add( getIndexer().constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( "jar" ) ), MUST );
+ queryBuilder.add( getIndexer().constructQuery( MAVEN.PACKAGING, new SourcedSearchExpression( "jar" ) ), MUST );
}
if ( classifier != null )
{
- query.add( getIndexer().constructQuery( MAVEN.CLASSIFIER, new SourcedSearchExpression( classifier ) ),
+ queryBuilder.add( getIndexer().constructQuery( MAVEN.CLASSIFIER, new SourcedSearchExpression( classifier ) ),
MUST );
}
+ Query query = queryBuilder.build();
+
LOGGER.debug( "Executing search query: {}; ctx id: {}; idx dir: {}",
new String[]{ query.toString(), indexingContext.getId(),
indexingContext.getIndexDirectory().toString() } );
@@ -198,8 +200,9 @@ public class RepositoryIndexer
public Set<ArtifactInfo> searchBySHA1( final String checksum )
throws IOException
{
- final BooleanQuery query = new BooleanQuery();
- query.add( getIndexer().constructQuery( MAVEN.SHA1, new SourcedSearchExpression( checksum ) ), MUST );
+ final BooleanQuery query = new BooleanQuery.Builder()
+ .add( getIndexer().constructQuery( MAVEN.SHA1, new SourcedSearchExpression( checksum ) ), MUST )
+ .build();
LOGGER.debug( "Executing search query: {}; ctx id: {}; idx dir: {}",
new String[]{ query.toString(), indexingContext.getId(),