From 7e707748a5d500c34b2d6350c0093c05c3d2775c Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
Date: Mon, 8 Aug 2016 19:48:08 +0100
Subject: [PATCH 2/2] Update to lucene 5
---
h2/pom.xml | 13 ++++++++++++-
h2/src/main/META-INF/MANIFEST.MF | 16 ++++++++--------
h2/src/main/org/h2/fulltext/FullTextLucene.java | 18 +++++++++---------
h2/src/tools/org/h2/build/Build.java | 8 ++++++--
4 files changed, 35 insertions(+), 20 deletions(-)
diff --git a/h2/src/main/META-INF/MANIFEST.MF b/h2/src/main/META-INF/MANIFEST.MF
index 9f219d1..49dc47d 100644
--- a/h2/src/main/META-INF/MANIFEST.MF
+++ b/h2/src/main/META-INF/MANIFEST.MF
@@ -23,14 +23,14 @@ Import-Package: javax.management,
javax.sql,
javax.tools;resolution:=optional,
javax.transaction.xa;resolution:=optional,
- org.apache.lucene.analysis;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.analysis.standard;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.document;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.index;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.queryParser;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.search;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.store;version="[3.6.2,4.0.0)";resolution:=optional,
- org.apache.lucene.util;version="[3.6.2,4.0.0)";resolution:=optional,
+ org.apache.lucene.analysis;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.analysis.standard;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.document;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.index;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.queryParser;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.search;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.store;version="[5.4.1,6.0.0)";resolution:=optional,
+ org.apache.lucene.util;version="[5.4.1,6.0.0)";resolution:=optional,
com.vividsolutions.jts.geom;version="1.14.0";resolution:=optional,
com.vividsolutions.jts.io;version="1.14.0";resolution:=optional,
org.h2;version="[${version},1.5.0)",
diff --git a/h2/src/main/org/h2/fulltext/FullTextLucene.java b/h2/src/main/org/h2/fulltext/FullTextLucene.java
index f24bcab..d9c5b92 100644
--- a/h2/src/main/org/h2/fulltext/FullTextLucene.java
+++ b/h2/src/main/org/h2/fulltext/FullTextLucene.java
@@ -19,10 +19,11 @@ import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.DateTools;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
+import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.index.Term;
-import org.apache.lucene.queryParser.QueryParser;
+import org.apache.lucene.queryparser.classic.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.h2.api.Trigger;
@@ -303,13 +304,14 @@ public class FullTextLucene extends FullText {
if (access == null) {
try {
Directory indexDir = path.startsWith(IN_MEMORY_PREFIX) ?
- new RAMDirectory() : FSDirectory.open(new File(path));
- Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_30);
- IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_30, analyzer);
+ new RAMDirectory() : FSDirectory.open(new File(path).toPath());
+ Analyzer analyzer = new StandardAnalyzer();
+ analyzer.setVersion(Version.LUCENE_5_4_1);
+ IndexWriterConfig conf = new IndexWriterConfig(analyzer);
conf.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
IndexWriter writer = new IndexWriter(indexDir, conf);
//see http://wiki.apache.org/lucene-java/NearRealtimeSearch
- IndexReader reader = IndexReader.open(writer, true);
+ IndexReader reader = DirectoryReader.open(writer, true);
access = new IndexAccess();
access.writer = writer;
access.reader = reader;
@@ -394,7 +396,6 @@ public class FullTextLucene extends FullText {
synchronized (INDEX_ACCESS) {
try {
INDEX_ACCESS.remove(indexPath);
- access.searcher.close();
access.reader.close();
access.writer.close();
} catch (Exception e) {
@@ -430,7 +431,7 @@ public class FullTextLucene extends FullText {
// reuse the same analyzer; it's thread-safe;
// also allows subclasses to control the analyzer used.
Analyzer analyzer = access.writer.getAnalyzer();
- QueryParser parser = new QueryParser(Version.LUCENE_30,
+ QueryParser parser = new QueryParser(
LUCENE_FIELD_DATA, analyzer);
Query query = parser.parse(text);
// Lucene 3 insists on a hard limit and will not provide
@@ -604,9 +605,8 @@ public class FullTextLucene extends FullText {
try {
indexAccess.writer.commit();
// recreate Searcher with the IndexWriter's reader.
- indexAccess.searcher.close();
indexAccess.reader.close();
- indexAccess.reader = IndexReader.open(indexAccess.writer, true);
+ indexAccess.reader = DirectoryReader.open(indexAccess.writer, true);
indexAccess.searcher = new IndexSearcher(indexAccess.reader);
} catch (IOException e) {
throw convertException(e);
diff --git a/h2/src/tools/org/h2/build/Build.java b/h2/src/tools/org/h2/build/Build.java
index a599656..24d97c6 100644
--- a/h2/src/tools/org/h2/build/Build.java
+++ b/h2/src/tools/org/h2/build/Build.java
@@ -204,7 +204,9 @@ public class Build extends BuildBase {
download();
String classpath = "temp" +
File.pathSeparator + "ext/servlet-api-3.1.0.jar" +
- File.pathSeparator + "ext/lucene-core-3.6.2.jar" +
+ File.pathSeparator + "ext/lucene-core-5.4.1.jar" +
+ File.pathSeparator + "ext/lucene-analyzers-common-5.4.1.jar" +
+ File.pathSeparator + "ext/lucene-queryparser-5.4.1.jar" +
File.pathSeparator + "ext/slf4j-api-1.6.0.jar" +
File.pathSeparator + "ext/org.osgi.core-4.2.0.jar" +
File.pathSeparator + "ext/org.osgi.enterprise-4.2.0.jar" +
@@ -595,7 +597,9 @@ public class Build extends BuildBase {
javadoc("-sourcepath", "src/main", "org.h2.jdbc", "org.h2.jdbcx",
"org.h2.tools", "org.h2.api", "org.h2.engine", "org.h2.fulltext",
"-classpath",
- "ext/lucene-core-3.6.2.jar" +
+ "ext/lucene-core-5.4.1.jar" + File.pathSeparator +
+ "ext/lucene-analyzers-common-5.4.1.jar" + File.pathSeparator +
+ "ext/lucene-queryparser-5.4.1.jar" +
File.pathSeparator + "ext/jts-core-1.14.0.jar",
"-docletpath", "bin" + File.pathSeparator + "temp",
"-doclet", "org.h2.build.doclet.Doclet");
--
2.5.5