Author: ningjiang Date: Wed Apr 28 03:36:11 2010 New Revision: 938766 URL: http://svn.apache.org/viewvc?rev=938766&view=rev Log: CAMEL-2680 Supported to set the lucene version
Modified: camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerTest.java camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java Modified: camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java?rev=938766&r1=938765&r2=938766&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java (original) +++ camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java Wed Apr 28 03:36:11 2010 @@ -21,13 +21,11 @@ import java.net.URI; import java.net.URISyntaxException; import java.util.Map; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.standard.StandardAnalyzer; +import org.apache.lucene.util.Version; public class LuceneConfiguration { - private static final transient Log LOG = LogFactory.getLog(LuceneConfiguration.class); private URI uri; private String protocolType; private String authority; @@ -37,6 +35,7 @@ public class LuceneConfiguration { private File indexDirectory; private Analyzer analyzer; private int maxHits; + private Version luceneVersion = Version.LUCENE_30; public LuceneConfiguration() { } @@ -67,7 +66,7 @@ public class LuceneConfiguration { indexDirectory = component.resolveAndRemoveReferenceParameter( parameters, "indexDir", File.class, new File("file:///./indexDirectory")); analyzer = component.resolveAndRemoveReferenceParameter( - parameters, "analyzer", Analyzer.class, new StandardAnalyzer(org.apache.lucene.util.Version.LUCENE_CURRENT)); + parameters, "analyzer", Analyzer.class, new StandardAnalyzer(luceneVersion)); setMaxHits(component.getAndRemoveParameter(parameters, "maxHits", Integer.class, 10)); } @@ -163,6 +162,14 @@ public class LuceneConfiguration { public void setMaxHits(int maxHits) { this.maxHits = maxHits; - } + } + + public void setLuceneVersion(Version luceneVersion) { + this.luceneVersion = luceneVersion; + } + + public Version getLuceneVersion() { + return luceneVersion; + } } Modified: camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java?rev=938766&r1=938765&r2=938766&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java (original) +++ camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneQueryProducer.java Wed Apr 28 03:36:11 2010 @@ -55,7 +55,7 @@ public class LuceneQueryProducer extends String phrase = exchange.getIn().getHeader("QUERY", String.class); if (phrase != null) { searcher.open(indexDirectory, analyzer); - hits = searcher.search(phrase, maxNumberOfHits); + hits = searcher.search(phrase, maxNumberOfHits, config.getLuceneVersion()); } else { throw new IllegalArgumentException("SearchPhrase for LucenePhraseQuerySearcher not set. Set the Header value: QUERY"); } Modified: camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java?rev=938766&r1=938765&r2=938766&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java (original) +++ camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneSearcher.java Wed Apr 28 03:36:11 2010 @@ -52,11 +52,15 @@ public class LuceneSearcher { public void close() throws IOException { indexSearcher.close(); } - + public Hits search(String searchPhrase, int maxNumberOfHits) throws Exception { + return search(searchPhrase, maxNumberOfHits, Version.LUCENE_30); + } + + public Hits search(String searchPhrase, int maxNumberOfHits, Version luenceVersion) throws Exception { Hits searchHits = new Hits(); - int numberOfHits = doSearch(searchPhrase, maxNumberOfHits); + int numberOfHits = doSearch(searchPhrase, maxNumberOfHits, luenceVersion); searchHits.setNumberOfHits(numberOfHits); for (ScoreDoc hit : hits) { @@ -71,12 +75,12 @@ public class LuceneSearcher { return searchHits; } - private int doSearch(String searchPhrase, int maxNumberOfHits) throws NullPointerException, ParseException, IOException { + private int doSearch(String searchPhrase, int maxNumberOfHits, Version luenceVersion) throws NullPointerException, ParseException, IOException { if (LOG.isTraceEnabled()) { LOG.trace("*** Search Phrase: " + searchPhrase + " ***"); } - QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "contents", analyzer); + QueryParser parser = new QueryParser(luenceVersion, "contents", analyzer); Query query = parser.parse(searchPhrase); TopScoreDocCollector collector = TopScoreDocCollector.create(maxNumberOfHits, true); indexSearcher.search(query, collector); Modified: camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java?rev=938766&r1=938765&r2=938766&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java (original) +++ camel/trunk/components/camel-lucene/src/main/java/org/apache/camel/processor/lucene/LuceneQueryProcessor.java Wed Apr 28 03:36:11 2010 @@ -24,6 +24,7 @@ import org.apache.camel.component.lucene import org.apache.camel.processor.lucene.support.Hits; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.search.IndexSearcher; +import org.apache.lucene.util.Version; public class LuceneQueryProcessor implements Processor { private File indexDirectory; @@ -32,6 +33,7 @@ public class LuceneQueryProcessor implem private LuceneSearcher searcher; private String searchPhrase; private int maxNumberOfHits; + private Version luceneVersion; public LuceneQueryProcessor(String indexDirectoryPath, Analyzer analyzer, String defaultSearchPhrase, int maxNumberOfHits) { this.setAnalyzer(analyzer); @@ -47,7 +49,7 @@ public class LuceneQueryProcessor implem if (phrase != null) { searcher = new LuceneSearcher(); searcher.open(indexDirectory, analyzer); - hits = searcher.search(phrase, maxNumberOfHits); + hits = searcher.search(phrase, maxNumberOfHits, luceneVersion); } else { throw new IllegalArgumentException("SearchPhrase for LuceneQueryProcessor not set. Set the Header value: QUERY"); } @@ -94,5 +96,13 @@ public class LuceneQueryProcessor implem public void setMaxNumberOfHits(int maxNumberOfHits) { this.maxNumberOfHits = maxNumberOfHits; } + + public void setLuceneVersion(Version luceneVersion) { + this.luceneVersion = luceneVersion; + } + + public Version getLuceneVersion() { + return luceneVersion; + } } Modified: camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerTest.java?rev=938766&r1=938765&r2=938766&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerTest.java (original) +++ camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/component/lucene/LuceneIndexAndQueryProducerTest.java Wed Apr 28 03:36:11 2010 @@ -52,7 +52,7 @@ public class LuceneIndexAndQueryProducer JndiRegistry registry = new JndiRegistry(createJndiContext()); registry.bind("std", new File("target/stdindexDir")); registry.bind("load_dir", new File("src/test/resources/sources")); - registry.bind("stdAnalyzer", new StandardAnalyzer(Version.LUCENE_CURRENT)); + registry.bind("stdAnalyzer", new StandardAnalyzer(Version.LUCENE_30)); registry.bind("simple", new File("target/simpleindexDir")); registry.bind("simpleAnalyzer", new SimpleAnalyzer()); registry.bind("whitespace", new File("target/whitespaceindexDir")); Modified: camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java?rev=938766&r1=938765&r2=938766&view=diff ============================================================================== --- camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java (original) +++ camel/trunk/components/camel-lucene/src/test/java/org/apache/camel/processor/lucene/LuceneQueryProcessorTest.java Wed Apr 28 03:36:11 2010 @@ -53,7 +53,7 @@ public class LuceneQueryProcessorTest ex @Test public void testPhraseSearcher() throws Exception { - final StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_CURRENT); + final StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_30); MockEndpoint mockSearchEndpoint = new MockEndpoint("mock:searchResult"); context.stop();