This is an automated email from the ASF dual-hosted git repository. juanpablo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit b2cbbfbe547ec9a4db0f25c9c4f0616b30b3b246 Author: juanpablo <[email protected]> AuthorDate: Thu Oct 10 23:22:06 2019 +0200 LuceneSearchProvider now uses an Executor to increase performance on searches see http://blog.mikemccandless.com/2019/10/concurrent-query-execution-in-apache.html for details --- .../src/main/java/org/apache/wiki/search/LuceneSearchProvider.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java index 5e3f732..5bb618d 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java @@ -78,6 +78,8 @@ import java.util.Collections; import java.util.Date; import java.util.List; import java.util.Properties; +import java.util.concurrent.Executor; +import java.util.concurrent.Executors; /** @@ -90,6 +92,7 @@ public class LuceneSearchProvider implements SearchProvider { protected static final Logger log = Logger.getLogger(LuceneSearchProvider.class); private WikiEngine m_engine; + private Executor searchExecutor; // Lucene properties. @@ -134,6 +137,7 @@ public class LuceneSearchProvider implements SearchProvider { throws NoRequiredPropertyException, IOException { m_engine = engine; + searchExecutor = Executors.newCachedThreadPool(); m_luceneDirectory = engine.getWorkDir()+File.separator+LUCENE_DIR; @@ -519,7 +523,7 @@ public class LuceneSearchProvider implements SearchProvider { final String[] queryfields = { LUCENE_PAGE_CONTENTS, LUCENE_PAGE_NAME, LUCENE_AUTHOR, LUCENE_ATTACHMENTS, LUCENE_PAGE_KEYWORDS }; final QueryParser qp = new MultiFieldQueryParser( queryfields, getLuceneAnalyzer() ); final Query luceneQuery = qp.parse( query ); - final IndexSearcher searcher = new IndexSearcher( reader ); + final IndexSearcher searcher = new IndexSearcher( reader, searchExecutor ); if( (flags & FLAG_CONTEXTS) != 0 ) { highlighter = new Highlighter(new SimpleHTMLFormatter("<span class=\"searchmatch\">", "</span>"),
