This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 07a8d8f413c29d1cb053cb195ac666f7bce3c6d9 Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Thu Jul 18 08:41:50 2019 +0200 CAMEL-13762 - Camel-Lucene: Upgrade Lucene to 8.x --- .../apache/camel/component/lucene/LuceneQueryProducer.java | 3 ++- .../org/apache/camel/component/lucene/LuceneSearcher.java | 12 ++++++------ .../camel/processor/lucene/LuceneQueryProcessor.java | 14 +++++++++++--- .../camel/processor/lucene/LuceneQueryProcessorTest.java | 4 ++-- parent/pom.xml | 6 +++--- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java index 5448e30..650816e 100644 --- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java +++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java @@ -30,6 +30,7 @@ public class LuceneQueryProducer extends DefaultProducer { Analyzer analyzer; File indexDirectory; int maxNumberOfHits; + int totalHitsThreshold; public LuceneQueryProducer(Endpoint endpoint, LuceneConfiguration config) throws Exception { super(endpoint); @@ -60,7 +61,7 @@ public class LuceneQueryProducer extends DefaultProducer { if (phrase != null) { searcher.open(indexDirectory, analyzer); - hits = searcher.search(phrase, maxNumberOfHits, config.getLuceneVersion(), isReturnLuceneDocs); + hits = searcher.search(phrase, maxNumberOfHits, totalHitsThreshold, config.getLuceneVersion(), isReturnLuceneDocs); } else { throw new IllegalArgumentException("SearchPhrase for LucenePhraseQuerySearcher not set. Set the Header value: QUERY"); } diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java index b3309d7..25a0f80 100644 --- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java +++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java @@ -58,14 +58,14 @@ public class LuceneSearcher { analyzer.close(); } - public Hits search(String searchPhrase, int maxNumberOfHits) throws Exception { - return search(searchPhrase, maxNumberOfHits, LuceneConstants.LUCENE_VERSION, false); + public Hits search(String searchPhrase, int maxNumberOfHits, int totalHitsThreshold) throws Exception { + return search(searchPhrase, maxNumberOfHits, totalHitsThreshold, LuceneConstants.LUCENE_VERSION, false); } - public Hits search(String searchPhrase, int maxNumberOfHits, Version luceneVersion, boolean returnLuceneDocs) throws Exception { + public Hits search(String searchPhrase, int maxNumberOfHits, int totalHitsThreshold, Version luceneVersion, boolean returnLuceneDocs) throws Exception { Hits searchHits = new Hits(); - int numberOfHits = doSearch(searchPhrase, maxNumberOfHits, luceneVersion); + int numberOfHits = doSearch(searchPhrase, maxNumberOfHits, totalHitsThreshold, luceneVersion); searchHits.setNumberOfHits(numberOfHits); for (ScoreDoc hit : hits) { @@ -83,12 +83,12 @@ public class LuceneSearcher { return searchHits; } - private int doSearch(String searchPhrase, int maxNumberOfHits, Version luceneVersion) throws NullPointerException, ParseException, IOException { + private int doSearch(String searchPhrase, int maxNumberOfHits, int totalHitsThreshold, Version luceneVersion) throws NullPointerException, ParseException, IOException { LOG.trace("*** Search Phrase: {} ***", searchPhrase); QueryParser parser = new QueryParser("contents", analyzer); Query query = parser.parse(searchPhrase); - TopScoreDocCollector collector = TopScoreDocCollector.create(maxNumberOfHits); + TopScoreDocCollector collector = TopScoreDocCollector.create(maxNumberOfHits, totalHitsThreshold); indexSearcher.search(query, collector); hits = collector.topDocs().scoreDocs; diff --git a/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java b/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java index f312846..eeebb45 100644 --- a/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java +++ b/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java @@ -33,9 +33,10 @@ public class LuceneQueryProcessor implements Processor { private LuceneSearcher searcher; private String searchPhrase; private int maxNumberOfHits; + private int totalHitsThreshold; private Version luceneVersion; - public LuceneQueryProcessor(String indexDirectoryPath, Analyzer analyzer, String defaultSearchPhrase, int maxNumberOfHits) { + public LuceneQueryProcessor(String indexDirectoryPath, Analyzer analyzer, String defaultSearchPhrase, int maxNumberOfHits, int totalHitsThreshold) { this.setAnalyzer(analyzer); this.setIndexDirectory(new File(indexDirectoryPath)); this.setSearchPhrase(defaultSearchPhrase); @@ -52,7 +53,7 @@ public class LuceneQueryProcessor implements Processor { if (phrase != null) { searcher = new LuceneSearcher(); searcher.open(indexDirectory, analyzer); - hits = searcher.search(phrase, maxNumberOfHits, luceneVersion, isReturnLuceneDocs); + hits = searcher.search(phrase, maxNumberOfHits, totalHitsThreshold, luceneVersion, isReturnLuceneDocs); } else { throw new IllegalArgumentException("SearchPhrase for LuceneQueryProcessor not set. Set the Header value: QUERY"); } @@ -107,5 +108,12 @@ public class LuceneQueryProcessor implements Processor { public Version getLuceneVersion() { return luceneVersion; } - + + public int getTotalHitsThreshold() { + return totalHitsThreshold; + } + + public void setTotalHitsThreshold(int totalHitsThreshold) { + this.totalHitsThreshold = totalHitsThreshold; + } } diff --git a/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java b/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java index cd9d6ca..b80071d 100644 --- a/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java +++ b/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java @@ -61,7 +61,7 @@ public class LuceneQueryProcessorTest extends CamelTestSupport { try { from("direct:start"). setHeader("QUERY", constant("Rodney Dangerfield")). - process(new LuceneQueryProcessor("target/stdindexDir", analyzer, null, 20)). + process(new LuceneQueryProcessor("target/stdindexDir", analyzer, null, 20, 20)). to("direct:next"); } catch (Exception e) { e.printStackTrace(); @@ -105,7 +105,7 @@ public class LuceneQueryProcessorTest extends CamelTestSupport { try { from("direct:start"). setHeader("QUERY", constant("Carl*")). - process(new LuceneQueryProcessor("target/simpleindexDir", analyzer, null, 20)). + process(new LuceneQueryProcessor("target/simpleindexDir", analyzer, null, 20, 20)). to("direct:next"); } catch (Exception e) { e.printStackTrace(); diff --git a/parent/pom.xml b/parent/pom.xml index 1dbecbc..ca3a705 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -415,10 +415,10 @@ <log4j2-version>2.11.2</log4j2-version> <logback-version>1.2.3</logback-version> <lucene3-version>3.6.0</lucene3-version> - <lucene-bundle-version>7.6.0_1</lucene-bundle-version> + <lucene-bundle-version>8.1.1_1</lucene-bundle-version> <!-- lucene aligned with elasticsearch version of lucene in use --> - <lucene-version>7.6.0</lucene-version> - <lucene-version-range>[7,8)</lucene-version-range> + <lucene-version>8.1.1</lucene-version> + <lucene-version-range>[8,9)</lucene-version-range> <lightcouch-version>0.2.0</lightcouch-version> <lightcouch-bundle-version>0.2.0_1</lightcouch-bundle-version> <lz4-version>1.6.0</lz4-version>