You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by os...@apache.org on 2017/03/10 08:39:01 UTC
[1/4] jena git commit: Upgrade to Lucene 5.5.4,
drop all version fields, reimplement multilingual analyzer (JENA-1250)
Repository: jena
Updated Branches:
refs/heads/master c5c15bb25 -> 973de6be5
Upgrade to Lucene 5.5.4, drop all version fields, reimplement multilingual analyzer (JENA-1250)
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/a7c37dc4
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/a7c37dc4
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/a7c37dc4
Branch: refs/heads/master
Commit: a7c37dc421880547f71178e93dfc04dafeb8fd2e
Parents: 502c58b
Author: Osma Suominen <os...@helsinki.fi>
Authored: Fri Mar 3 10:34:50 2017 +0200
Committer: Osma Suominen <os...@helsinki.fi>
Committed: Fri Mar 3 11:01:36 2017 +0200
----------------------------------------------------------------------
jena-parent/pom.xml | 2 +-
.../main/java/examples/JenaSpatialExample1.java | 2 +-
.../src/main/java/jena/spatialindexdump.java | 2 +-
.../jena/query/spatial/SpatialIndexLucene.java | 13 ++--
.../assembler/SpatialIndexLuceneAssembler.java | 3 +-
.../jena/query/spatial/SpatialSearchUtil.java | 13 ++--
jena-text/src/main/java/jena/textindexdump.java | 2 +-
.../jena/query/text/TextDatasetFactory.java | 7 +-
.../apache/jena/query/text/TextIndexLucene.java | 51 ++++++++-----
.../query/text/TextIndexLuceneMultilingual.java | 75 --------------------
.../text/analyzer/ConfigurableAnalyzer.java | 24 +++----
.../text/analyzer/LowerCaseKeywordAnalyzer.java | 14 +---
.../text/analyzer/MultilingualAnalyzer.java | 54 ++++++++++++++
.../apache/jena/query/text/analyzer/Util.java | 10 +--
.../ConfigurableAnalyzerAssembler.java | 3 +-
.../assembler/LocalizedAnalyzerAssembler.java | 5 +-
.../LowerCaseKeywordAnalyzerAssembler.java | 3 +-
.../text/assembler/SimpleAnalyzerAssembler.java | 3 +-
.../assembler/StandardAnalyzerAssembler.java | 7 +-
.../assembler/TextIndexLuceneAssembler.java | 5 +-
.../text/TestLuceneWithMultipleThreads.java | 3 +-
.../apache/jena/query/text/TextSearchUtil.java | 8 +--
22 files changed, 132 insertions(+), 177 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-parent/pom.xml
----------------------------------------------------------------------
diff --git a/jena-parent/pom.xml b/jena-parent/pom.xml
index 8af18b4..e801e83 100644
--- a/jena-parent/pom.xml
+++ b/jena-parent/pom.xml
@@ -72,7 +72,7 @@
<ver.httpclient-osgi>${ver.httpclient}</ver.httpclient-osgi>
<ver.commons-codec>1.10</ver.commons-codec>
- <ver.lucene>4.9.1</ver.lucene>
+ <ver.lucene>5.5.4</ver.lucene>
<ver.solr>4.9.1</ver.solr>
<ver.spatial4j>0.5</ver.spatial4j>
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/examples/JenaSpatialExample1.java b/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
index b858b17..03f77e7 100644
--- a/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
+++ b/jena-spatial/src/main/java/examples/JenaSpatialExample1.java
@@ -140,7 +140,7 @@ public class JenaSpatialExample1 {
// Lucene, index in File system.
- Directory dir = FSDirectory.open(indexDir);
+ Directory dir = FSDirectory.open(indexDir.toPath());
// Join together into a dataset
Dataset ds = SpatialDatasetFactory.createLucene(baseDataset, dir, entDef);
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-spatial/src/main/java/jena/spatialindexdump.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/jena/spatialindexdump.java b/jena-spatial/src/main/java/jena/spatialindexdump.java
index 904637c..29a3d5d 100644
--- a/jena-spatial/src/main/java/jena/spatialindexdump.java
+++ b/jena-spatial/src/main/java/jena/spatialindexdump.java
@@ -103,7 +103,7 @@ public class spatialindexdump extends CmdARQ {
Analyzer analyzer = spatialIndex.getAnalyzer() ;
IndexReader indexReader = DirectoryReader.open(directory) ;
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
- QueryParser queryParser = new QueryParser(SpatialIndexLucene.VER, spatialIndex.getDocDef().getEntityField(), analyzer);
+ QueryParser queryParser = new QueryParser(spatialIndex.getDocDef().getEntityField(), analyzer);
Query query = queryParser.parse("*:*");
ScoreDoc[] sDocs = indexSearcher.search(query, 1000).scoreDocs ;
for ( ScoreDoc sd : sDocs ) {
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
index e340cd6..85a8bb4 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
@@ -37,7 +37,6 @@ import org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree ;
import org.apache.lucene.spatial.query.SpatialArgs ;
import org.apache.lucene.spatial.query.SpatialOperation ;
import org.apache.lucene.store.Directory ;
-import org.apache.lucene.util.Version ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -48,14 +47,13 @@ public class SpatialIndexLucene implements SpatialIndex {
.getLogger(SpatialIndexLucene.class);
private static int MAX_N = 10000;
- public static final Version VER = Version.LUCENE_4_9;
public static final FieldType ftIRI;
static {
ftIRI = new FieldType();
ftIRI.setTokenized(false);
ftIRI.setStored(true);
- ftIRI.setIndexed(true);
+ ftIRI.setIndexOptions(IndexOptions.DOCS);
ftIRI.freeze();
}
// public static final FieldType ftText = TextField.TYPE_NOT_STORED ;
@@ -65,7 +63,7 @@ public class SpatialIndexLucene implements SpatialIndex {
private final EntityDefinition docDef;
private final Directory directory;
private IndexWriter indexWriter;
- private Analyzer analyzer = new StandardAnalyzer(VER);
+ private Analyzer analyzer = new StandardAnalyzer();
/**
* The Lucene spatial {@link SpatialStrategy} encapsulates an approach to
@@ -108,7 +106,7 @@ public class SpatialIndexLucene implements SpatialIndex {
@Override
public void startIndexing() {
try {
- IndexWriterConfig wConfig = new IndexWriterConfig(VER, analyzer);
+ IndexWriterConfig wConfig = new IndexWriterConfig(analyzer);
indexWriter = new IndexWriter(directory, wConfig);
} catch (IOException e) {
exception(e);
@@ -193,9 +191,8 @@ public class SpatialIndexLucene implements SpatialIndex {
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
SpatialArgs args = new SpatialArgs(operation, shape);
args.setDistErr(0.0);
- Filter filter = strategy.makeFilter(args);
- TopDocs docs = indexSearcher.search(new MatchAllDocsQuery(), filter,
- limit);
+ Query query = strategy.makeQuery(args);
+ TopDocs docs = indexSearcher.search(query, limit);
List<Node> results = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/SpatialIndexLuceneAssembler.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/SpatialIndexLuceneAssembler.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/SpatialIndexLuceneAssembler.java
index 5554e3d..643b54e 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/SpatialIndexLuceneAssembler.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/SpatialIndexLuceneAssembler.java
@@ -50,7 +50,6 @@ public class SpatialIndexLuceneAssembler extends AssemblerBase
.
*/
- @SuppressWarnings("resource")
@Override
public SpatialIndex open(Assembler a, Resource root, Mode mode)
{
@@ -72,7 +71,7 @@ public class SpatialIndexLuceneAssembler extends AssemblerBase
Resource x = n.asResource() ;
String path = IRILib.IRIToFilename(x.getURI()) ;
File dir = new File(path) ;
- directory = FSDirectory.open(dir) ;
+ directory = FSDirectory.open(dir.toPath()) ;
}
Resource r = GraphUtils.getResourceValue(root, pDefinition) ;
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
index a1b5f08..8d0453a 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/SpatialSearchUtil.java
@@ -31,13 +31,9 @@ import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.util.Version;
public class SpatialSearchUtil {
-
- private static Version VER = SpatialIndexLucene.VER ;
- private static final Analyzer analyzer = new StandardAnalyzer(VER);
-
+ private static final Analyzer analyzer = new StandardAnalyzer();
private static final String LUCENE_INDEX_PATH = "target/test/LuceneSpatialIndex";
private static final File LUCENE_Index_DIR = new File(LUCENE_INDEX_PATH);
@@ -63,9 +59,8 @@ public class SpatialSearchUtil {
public static void createEmptyIndex(File indexDir) {
try {
- Directory directory = FSDirectory.open(indexDir) ;
- IndexWriterConfig wConfig = new IndexWriterConfig(VER, analyzer) ;
- @SuppressWarnings("resource")
+ Directory directory = FSDirectory.open(indexDir.toPath()) ;
+ IndexWriterConfig wConfig = new IndexWriterConfig(analyzer) ;
IndexWriter indexWriter = new IndexWriter(directory, wConfig) ;
indexWriter.close() ; // force creation of the index files
} catch (IOException ex) {
@@ -126,7 +121,7 @@ public class SpatialSearchUtil {
EntityDefinition entDef = new EntityDefinition("uri", "geo");
// Lucene, index in File system.
- Directory dir = FSDirectory.open(indexDir);
+ Directory dir = FSDirectory.open(indexDir.toPath());
// Join together into a dataset
Dataset ds = SpatialDatasetFactory.createLucene(baseDataset, dir, entDef);
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/jena/textindexdump.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/jena/textindexdump.java b/jena-text/src/main/java/jena/textindexdump.java
index 0226094..08f6cfb 100644
--- a/jena-text/src/main/java/jena/textindexdump.java
+++ b/jena-text/src/main/java/jena/textindexdump.java
@@ -101,7 +101,7 @@ public class textindexdump extends CmdARQ {
Analyzer analyzer = textIndex.getQueryAnalyzer() ;
IndexReader indexReader = DirectoryReader.open(directory) ;
IndexSearcher indexSearcher = new IndexSearcher(indexReader);
- QueryParser queryParser = new QueryParser(TextIndexLucene.VER, textIndex.getDocDef().getPrimaryField(), analyzer);
+ QueryParser queryParser = new QueryParser(textIndex.getDocDef().getPrimaryField(), analyzer);
Query query = queryParser.parse("*:*");
ScoreDoc[] sDocs = indexSearcher.search(query, 1000).scoreDocs ;
for ( ScoreDoc sd : sDocs ) {
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java b/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
index 544082b..043c482 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextDatasetFactory.java
@@ -107,12 +107,7 @@ public class TextDatasetFactory
*/
public static TextIndex createLuceneIndex(Directory directory, TextIndexConfig config)
{
- TextIndex index;
- if (config.isMultilingualSupport())
- index = new TextIndexLuceneMultilingual(directory, config) ;
- else
- index = new TextIndexLucene(directory, config) ;
- return index ;
+ return new TextIndexLucene(directory, config) ;
}
/**
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
index e6ef89f..b40ba03 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
@@ -27,6 +27,7 @@ import org.apache.jena.datatypes.TypeMapper ;
import org.apache.jena.datatypes.xsd.XSDDatatype ;
import org.apache.jena.graph.Node ;
import org.apache.jena.graph.NodeFactory ;
+import org.apache.jena.query.text.analyzer.MultilingualAnalyzer;
import org.apache.jena.sparql.util.NodeFactoryExtra ;
import org.apache.lucene.analysis.Analyzer ;
import org.apache.lucene.analysis.core.KeywordAnalyzer ;
@@ -43,7 +44,6 @@ import org.apache.lucene.search.IndexSearcher ;
import org.apache.lucene.search.Query ;
import org.apache.lucene.search.ScoreDoc ;
import org.apache.lucene.store.Directory ;
-import org.apache.lucene.util.Version ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
@@ -51,7 +51,6 @@ public class TextIndexLucene implements TextIndex {
private static Logger log = LoggerFactory.getLogger(TextIndexLucene.class) ;
private static int MAX_N = 10000 ;
- public static final Version VER = Version.LUCENE_4_9 ;
// prefix for storing datatype URIs in the index, to distinguish them from language tags
private static final String DATATYPE_PREFIX = "^^";
@@ -60,7 +59,7 @@ public class TextIndexLucene implements TextIndex {
ftIRI = new FieldType() ;
ftIRI.setTokenized(false) ;
ftIRI.setStored(true) ;
- ftIRI.setIndexed(true) ;
+ ftIRI.setIndexOptions(IndexOptions.DOCS);
ftIRI.freeze() ;
}
public static final FieldType ftString = StringField.TYPE_NOT_STORED ;
@@ -71,6 +70,7 @@ public class TextIndexLucene implements TextIndex {
private final Analyzer queryAnalyzer ;
private final String queryParserType ;
private final FieldType ftText ;
+ private final boolean isMultilingual ;
// The IndexWriter can't be final because we may have to recreate it if rollback() is called.
// However, it needs to be volatile in case the next write transaction is on a different thread,
@@ -88,8 +88,14 @@ public class TextIndexLucene implements TextIndex {
this.directory = directory ;
this.docDef = config.getEntDef() ;
+ this.isMultilingual = config.isMultilingualSupport();
+ if (this.isMultilingual && config.getEntDef().getLangField() == null) {
+ //multilingual index cannot work without lang field
+ docDef.setLangField("lang");
+ }
+
// create the analyzer as a wrapper that uses KeywordAnalyzer for
- // entity and graph fields and StandardAnalyzer for all other
+ // entity and graph fields and the configured analyzer(s) for all other
Map<String, Analyzer> analyzerPerField = new HashMap<>() ;
analyzerPerField.put(docDef.getEntityField(), new KeywordAnalyzer()) ;
if ( docDef.getGraphField() != null )
@@ -104,8 +110,10 @@ public class TextIndexLucene implements TextIndex {
}
}
- this.analyzer = new PerFieldAnalyzerWrapper(
- (null != config.getAnalyzer()) ? config.getAnalyzer() : new StandardAnalyzer(VER), analyzerPerField) ;
+ Analyzer defaultAnalyzer = (null != config.getAnalyzer()) ? config.getAnalyzer() : new StandardAnalyzer();
+ if (this.isMultilingual)
+ defaultAnalyzer = new MultilingualAnalyzer(defaultAnalyzer);
+ this.analyzer = new PerFieldAnalyzerWrapper(defaultAnalyzer, analyzerPerField) ;
this.queryAnalyzer = (null != config.getQueryAnalyzer()) ? config.getQueryAnalyzer() : this.analyzer ;
this.queryParserType = config.getQueryParser() ;
this.ftText = config.isValueStored() ? TextField.TYPE_STORED : TextField.TYPE_NOT_STORED ;
@@ -116,7 +124,7 @@ public class TextIndexLucene implements TextIndex {
}
private void openIndexWriter() {
- IndexWriterConfig wConfig = new IndexWriterConfig(VER, analyzer) ;
+ IndexWriterConfig wConfig = new IndexWriterConfig(analyzer) ;
try
{
indexWriter = new IndexWriter(directory, wConfig) ;
@@ -264,6 +272,10 @@ public class TextIndexLucene implements TextIndex {
RDFDatatype datatype = entity.getDatatype();
if (lang != null && !"".equals(lang)) {
doc.add(new Field(langField, lang, StringField.TYPE_STORED));
+ if (this.isMultilingual) {
+ // add a field that uses a language-specific analyzer via MultilingualAnalyzer
+ doc.add(new Field(e.getKey() + "_" + lang, (String) e.getValue(), ftText));
+ }
} else if (datatype != null && !datatype.equals(XSDDatatype.XSDstring)) {
// for non-string and non-langString datatypes, store the datatype in langField
doc.add(new Field(langField, DATATYPE_PREFIX + datatype.getURI(), StringField.TYPE_STORED));
@@ -296,32 +308,37 @@ public class TextIndexLucene implements TextIndex {
private QueryParser getQueryParser(Analyzer analyzer) {
switch(queryParserType) {
case "QueryParser":
- return new QueryParser(VER, docDef.getPrimaryField(), analyzer) ;
+ return new QueryParser(docDef.getPrimaryField(), analyzer) ;
case "AnalyzingQueryParser":
- return new AnalyzingQueryParser(VER, docDef.getPrimaryField(), analyzer) ;
+ return new AnalyzingQueryParser(docDef.getPrimaryField(), analyzer) ;
case "ComplexPhraseQueryParser":
- return new ComplexPhraseQueryParser(VER, docDef.getPrimaryField(), analyzer);
+ return new ComplexPhraseQueryParser(docDef.getPrimaryField(), analyzer);
default:
log.warn("Unknown query parser type '" + queryParserType + "'. Defaulting to standard QueryParser") ;
- return new QueryParser(VER, docDef.getPrimaryField(), analyzer) ;
+ return new QueryParser(docDef.getPrimaryField(), analyzer) ;
}
}
private Query parseQuery(String queryString, Analyzer analyzer) throws ParseException {
+ if (this.isMultilingual) {
+ if (queryString.contains(getDocDef().getLangField() + ":")) {
+ String lang = queryString.substring(queryString.lastIndexOf(":") + 1);
+ if (!"*".equals(lang)) {
+ // splice the language into the field name
+ queryString = queryString.replaceFirst(":", "_" + lang + ":");
+ }
+ }
+ }
QueryParser queryParser = getQueryParser(analyzer) ;
queryParser.setAllowLeadingWildcard(true) ;
Query query = queryParser.parse(queryString) ;
return query ;
}
- protected Query preParseQuery(String queryString, Analyzer analyzer) throws ParseException {
- return parseQuery(queryString, analyzer);
- }
-
private List<Map<String, Node>> get$(IndexReader indexReader, String uri) throws ParseException, IOException {
String escaped = QueryParserBase.escape(uri) ;
String qs = docDef.getEntityField() + ":" + escaped ;
- Query query = preParseQuery(qs, queryAnalyzer) ;
+ Query query = parseQuery(qs, queryAnalyzer) ;
IndexSearcher indexSearcher = new IndexSearcher(indexReader) ;
ScoreDoc[] sDocs = indexSearcher.search(query, 1).scoreDocs ;
List<Map<String, Node>> records = new ArrayList<>() ;
@@ -369,7 +386,7 @@ public class TextIndexLucene implements TextIndex {
private List<TextHit> query$(IndexReader indexReader, Node property, String qs, int limit) throws ParseException, IOException {
IndexSearcher indexSearcher = new IndexSearcher(indexReader) ;
- Query query = preParseQuery(qs, queryAnalyzer) ;
+ Query query = parseQuery(qs, queryAnalyzer) ;
if ( limit <= 0 )
limit = MAX_N ;
ScoreDoc[] sDocs = indexSearcher.search(query, limit).scoreDocs ;
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLuceneMultilingual.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLuceneMultilingual.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLuceneMultilingual.java
deleted file mode 100644
index ec7a8bb..0000000
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLuceneMultilingual.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.jena.query.text;
-
-import org.apache.jena.query.text.analyzer.Util;
-import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.document.Document;
-import org.apache.lucene.index.Term;
-import org.apache.lucene.queryparser.classic.ParseException;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.store.Directory;
-
-import java.io.IOException;
-
-public class TextIndexLuceneMultilingual extends TextIndexLucene {
-
- /**
- * Constructs a new TextIndexLuceneMultilingual.
- *
- * @param directory The Lucene Directory for the index
- * @param config The config definition for the index instantiation.
- */
- public TextIndexLuceneMultilingual(Directory directory, TextIndexConfig config) {
- super(directory, config) ;
-
- //multilingual index cannot work without lang field
- if (config.getEntDef().getLangField() == null)
- config.getEntDef().setLangField("lang");
- }
-
- @Override
- protected void updateDocument(Entity entity) throws IOException {
- Document doc = doc(entity);
- Term term = new Term(getDocDef().getEntityField(), entity.getId());
- Analyzer analyzer = Util.getLocalizedAnalyzer(entity.getLanguage());
- if (analyzer == null)
- analyzer = getAnalyzer();
- getIndexWriter().updateDocument(term, doc, analyzer) ;
- }
-
- @Override
- protected void addDocument(Entity entity) throws IOException {
- Document doc = doc(entity) ;
- Analyzer analyzer = Util.getLocalizedAnalyzer(entity.getLanguage());
- if (analyzer == null)
- analyzer = getAnalyzer();
- getIndexWriter().addDocument(doc, analyzer) ;
- }
-
- @Override
- protected Query preParseQuery(String queryString, Analyzer analyzer) throws ParseException {
- if (queryString.contains(getDocDef().getLangField() + ":")) {
- String lang = queryString.substring(queryString.lastIndexOf(":") + 1);
- if (!"*".equals(lang))
- analyzer = Util.getLocalizedAnalyzer(lang);
- }
- return super.preParseQuery(queryString, analyzer);
- }
-}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
index ada3361..8960ddb 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
@@ -18,7 +18,6 @@
package org.apache.jena.query.text.analyzer ;
-import java.io.Reader ;
import java.util.List ;
import org.apache.jena.query.text.TextIndexException;
@@ -33,7 +32,6 @@ import org.apache.lucene.analysis.core.WhitespaceTokenizer ;
import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter;
import org.apache.lucene.analysis.standard.StandardFilter;
import org.apache.lucene.analysis.standard.StandardTokenizer;
-import org.apache.lucene.util.Version ;
/**
@@ -42,20 +40,19 @@ import org.apache.lucene.util.Version ;
*/
public class ConfigurableAnalyzer extends Analyzer {
- private final Version version;
private final String tokenizer;
private final List<String> filters;
- private Tokenizer getTokenizer(String tokenizerName, Reader reader) {
+ private Tokenizer getTokenizer(String tokenizerName) {
switch(tokenizerName) {
case "KeywordTokenizer":
- return new KeywordTokenizer(reader);
+ return new KeywordTokenizer();
case "LetterTokenizer":
- return new LetterTokenizer(version, reader);
+ return new LetterTokenizer();
case "StandardTokenizer":
- return new StandardTokenizer(version, reader);
+ return new StandardTokenizer();
case "WhitespaceTokenizer":
- return new WhitespaceTokenizer(version, reader);
+ return new WhitespaceTokenizer();
default:
throw new TextIndexException("Unknown tokenizer : " + tokenizerName);
}
@@ -66,23 +63,22 @@ public class ConfigurableAnalyzer extends Analyzer {
case "ASCIIFoldingFilter":
return new ASCIIFoldingFilter(source);
case "LowerCaseFilter":
- return new LowerCaseFilter(version, source);
+ return new LowerCaseFilter(source);
case "StandardFilter":
- return new StandardFilter(version, source);
+ return new StandardFilter(source);
default:
throw new TextIndexException("Unknown filter : " + filterName);
}
}
- public ConfigurableAnalyzer(Version ver, String tokenizer, List<String> filters) {
- this.version = ver;
+ public ConfigurableAnalyzer(String tokenizer, List<String> filters) {
this.tokenizer = tokenizer;
this.filters = filters;
}
@Override
- protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
- Tokenizer source = getTokenizer(this.tokenizer, reader);
+ protected TokenStreamComponents createComponents(String fieldName) {
+ Tokenizer source = getTokenizer(this.tokenizer);
TokenStream stream = source;
for (String filter : this.filters) {
stream = getTokenFilter(filter, stream);
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/analyzer/LowerCaseKeywordAnalyzer.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/LowerCaseKeywordAnalyzer.java b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/LowerCaseKeywordAnalyzer.java
index 2b168b4..071569b 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/LowerCaseKeywordAnalyzer.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/LowerCaseKeywordAnalyzer.java
@@ -18,12 +18,9 @@
package org.apache.jena.query.text.analyzer ;
-import java.io.Reader ;
-
import org.apache.lucene.analysis.Analyzer ;
import org.apache.lucene.analysis.core.KeywordTokenizer ;
import org.apache.lucene.analysis.core.LowerCaseFilter ;
-import org.apache.lucene.util.Version ;
/**
@@ -33,16 +30,11 @@ import org.apache.lucene.util.Version ;
*/
public class LowerCaseKeywordAnalyzer extends Analyzer {
- private Version version;
-
- public LowerCaseKeywordAnalyzer(Version ver) {
- this.version = ver;
- }
@Override
- protected TokenStreamComponents createComponents(String fieldName, Reader reader) {
- KeywordTokenizer source = new KeywordTokenizer(reader);
- LowerCaseFilter filter = new LowerCaseFilter(version, source);
+ protected TokenStreamComponents createComponents(String fieldName) {
+ KeywordTokenizer source = new KeywordTokenizer();
+ LowerCaseFilter filter = new LowerCaseFilter(source);
return new TokenStreamComponents(source, filter);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/analyzer/MultilingualAnalyzer.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/MultilingualAnalyzer.java b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/MultilingualAnalyzer.java
new file mode 100644
index 0000000..1ba21d1
--- /dev/null
+++ b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/MultilingualAnalyzer.java
@@ -0,0 +1,54 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.jena.query.text.analyzer ;
+
+import org.apache.lucene.analysis.Analyzer ;
+import org.apache.lucene.analysis.DelegatingAnalyzerWrapper;
+
+
+/**
+ * Lucene Analyzer implementation that delegates to a language-specific
+ * Analyzer based on a field name suffix: e.g. field="label_en" will use
+ * an EnglishAnalyzer.
+ */
+
+public class MultilingualAnalyzer extends DelegatingAnalyzerWrapper {
+ private Analyzer defaultAnalyzer;
+
+ public MultilingualAnalyzer(Analyzer defaultAnalyzer) {
+ super(PER_FIELD_REUSE_STRATEGY);
+ this.defaultAnalyzer = defaultAnalyzer;
+ }
+
+ @Override
+ protected Analyzer getWrappedAnalyzer(String fieldName) {
+ int idx = fieldName.lastIndexOf("_");
+ if (idx == -1) { // not language-specific, e.g. "label"
+ return defaultAnalyzer;
+ }
+ String lang = fieldName.substring(idx+1);
+ Analyzer analyzer = Util.getLocalizedAnalyzer(lang);
+ return (analyzer != null ? analyzer : defaultAnalyzer);
+ }
+
+ @Override
+ public String toString() {
+ return "MultilingualAnalyzer(default=" + defaultAnalyzer + ")";
+ }
+}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/analyzer/Util.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/Util.java b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/Util.java
index c8e3490..fb2582a 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/Util.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/Util.java
@@ -18,9 +18,7 @@
package org.apache.jena.query.text.analyzer;
-import org.apache.jena.query.text.TextIndexLucene;
import org.apache.lucene.analysis.Analyzer;
-import org.apache.lucene.util.Version;
import java.lang.reflect.Constructor;
import java.util.Hashtable;
@@ -34,10 +32,6 @@ public class Util {
}
public static Analyzer getLocalizedAnalyzer(String lang) {
- return getLocalizedAnalyzer(lang, TextIndexLucene.VER);
- }
-
- public static Analyzer getLocalizedAnalyzer(String lang, Version ver) {
if (lang == null)
return null;
@@ -48,8 +42,8 @@ public class Util {
Class<?> className = analyzersClasses.get(lang);
if (className == null)
return null;
- Constructor<?> constructor = className.getConstructor(Version.class);
- Analyzer analyzer = (Analyzer)constructor.newInstance(ver);
+ Constructor<?> constructor = className.getConstructor();
+ Analyzer analyzer = (Analyzer)constructor.newInstance();
cache.put(lang, analyzer);
return analyzer;
} catch (Exception e) {
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/assembler/ConfigurableAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/ConfigurableAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/ConfigurableAnalyzerAssembler.java
index d336ed8..5ec96eb 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/ConfigurableAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/ConfigurableAnalyzerAssembler.java
@@ -25,7 +25,6 @@ import org.apache.jena.assembler.Assembler;
import org.apache.jena.assembler.Mode;
import org.apache.jena.assembler.assemblers.AssemblerBase;
import org.apache.jena.query.text.TextIndexException;
-import org.apache.jena.query.text.TextIndexLucene;
import org.apache.jena.query.text.analyzer.ConfigurableAnalyzer;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
@@ -64,7 +63,7 @@ public class ConfigurableAnalyzerAssembler extends AssemblerBase {
} else {
filters = new ArrayList<>();
}
- return new ConfigurableAnalyzer(TextIndexLucene.VER, tokenizer, filters);
+ return new ConfigurableAnalyzer(tokenizer, filters);
} else {
throw new TextIndexException("text:tokenizer setting is required by ConfigurableAnalyzer");
}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/assembler/LocalizedAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/LocalizedAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/LocalizedAnalyzerAssembler.java
index b9d83de..f26adc4 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/LocalizedAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/LocalizedAnalyzerAssembler.java
@@ -22,7 +22,6 @@ import org.apache.jena.assembler.Assembler;
import org.apache.jena.assembler.Mode;
import org.apache.jena.assembler.assemblers.AssemblerBase;
import org.apache.jena.query.text.TextIndexException;
-import org.apache.jena.query.text.TextIndexLucene;
import org.apache.jena.query.text.analyzer.Util;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
@@ -52,9 +51,9 @@ public class LocalizedAnalyzerAssembler extends AssemblerBase {
throw new TextIndexException("text:language property must be a string : " + node);
}
String lang = node.toString();
- return Util.getLocalizedAnalyzer(lang, TextIndexLucene.VER);
+ return Util.getLocalizedAnalyzer(lang);
} else {
- return new StandardAnalyzer(TextIndexLucene.VER);
+ return new StandardAnalyzer();
}
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/assembler/LowerCaseKeywordAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/LowerCaseKeywordAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/LowerCaseKeywordAnalyzerAssembler.java
index be64d52..9ad67f4 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/LowerCaseKeywordAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/LowerCaseKeywordAnalyzerAssembler.java
@@ -21,7 +21,6 @@ package org.apache.jena.query.text.assembler ;
import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.assemblers.AssemblerBase ;
-import org.apache.jena.query.text.TextIndexLucene;
import org.apache.jena.query.text.analyzer.LowerCaseKeywordAnalyzer;
import org.apache.jena.rdf.model.Resource ;
import org.apache.lucene.analysis.Analyzer;
@@ -42,6 +41,6 @@ public class LowerCaseKeywordAnalyzerAssembler extends AssemblerBase {
@Override
public Analyzer open(Assembler a, Resource root, Mode mode) {
- return new LowerCaseKeywordAnalyzer(TextIndexLucene.VER);
+ return new LowerCaseKeywordAnalyzer();
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/assembler/SimpleAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/SimpleAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/SimpleAnalyzerAssembler.java
index 39b4b4a..d0f6fe7 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/SimpleAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/SimpleAnalyzerAssembler.java
@@ -21,7 +21,6 @@ package org.apache.jena.query.text.assembler ;
import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.assemblers.AssemblerBase ;
-import org.apache.jena.query.text.TextIndexLucene;
import org.apache.jena.rdf.model.Resource ;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.core.SimpleAnalyzer;
@@ -43,6 +42,6 @@ public class SimpleAnalyzerAssembler extends AssemblerBase {
@Override
public Analyzer open(Assembler a, Resource root, Mode mode) {
- return new SimpleAnalyzer(TextIndexLucene.VER);
+ return new SimpleAnalyzer();
}
}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
index bfe1db5..e221d19 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
@@ -25,7 +25,6 @@ import org.apache.jena.assembler.Assembler ;
import org.apache.jena.assembler.Mode ;
import org.apache.jena.assembler.assemblers.AssemblerBase ;
import org.apache.jena.query.text.TextIndexException;
-import org.apache.jena.query.text.TextIndexLucene;
import org.apache.jena.rdf.model.Literal ;
import org.apache.jena.rdf.model.RDFNode ;
import org.apache.jena.rdf.model.Resource ;
@@ -56,7 +55,7 @@ public class StandardAnalyzerAssembler extends AssemblerBase {
if (root.hasProperty(TextVocab.pStopWords)) {
return analyzerWithStopWords(root);
} else {
- return new StandardAnalyzer(TextIndexLucene.VER);
+ return new StandardAnalyzer();
}
}
@@ -66,11 +65,11 @@ public class StandardAnalyzerAssembler extends AssemblerBase {
throw new TextIndexException("text:stopWords property takes a list as a value : " + node);
}
CharArraySet stopWords = toCharArraySet((Resource) node);
- return new StandardAnalyzer(TextIndexLucene.VER, stopWords);
+ return new StandardAnalyzer(stopWords);
}
private CharArraySet toCharArraySet(Resource list) {
- return new CharArraySet(TextIndexLucene.VER, toList(list), false);
+ return new CharArraySet(toList(list), false);
}
private List<String> toList(Resource list) {
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
index 1af7e9d..a4f2949 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/TextIndexLuceneAssembler.java
@@ -48,7 +48,6 @@ public class TextIndexLuceneAssembler extends AssemblerBase {
.
*/
- @SuppressWarnings("resource")
@Override
public TextIndex open(Assembler a, Resource root, Mode mode) {
try {
@@ -64,13 +63,13 @@ public class TextIndexLuceneAssembler extends AssemblerBase {
directory = new RAMDirectory() ;
} else {
File dir = new File(literalValue) ;
- directory = FSDirectory.open(dir) ;
+ directory = FSDirectory.open(dir.toPath()) ;
}
} else {
Resource x = n.asResource() ;
String path = IRILib.IRIToFilename(x.getURI()) ;
File dir = new File(path) ;
- directory = FSDirectory.open(dir) ;
+ directory = FSDirectory.open(dir.toPath()) ;
}
Analyzer analyzer = null;
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/test/java/org/apache/jena/query/text/TestLuceneWithMultipleThreads.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TestLuceneWithMultipleThreads.java b/jena-text/src/test/java/org/apache/jena/query/text/TestLuceneWithMultipleThreads.java
index 2b97064..223857c 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TestLuceneWithMultipleThreads.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TestLuceneWithMultipleThreads.java
@@ -35,7 +35,6 @@ import org.apache.jena.sparql.core.DatasetGraphFactory ;
import org.apache.jena.vocabulary.RDFS ;
import org.apache.lucene.analysis.standard.StandardAnalyzer ;
import org.apache.lucene.store.RAMDirectory ;
-import org.apache.lucene.util.Version ;
import org.junit.Test ;
/**
@@ -49,7 +48,7 @@ public class TestLuceneWithMultipleThreads
entDef = new EntityDefinition("uri", "label");
entDef.setGraphField("graph");
entDef.setPrimaryPredicate(RDFS.label);
- StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_4_9);
+ StandardAnalyzer analyzer = new StandardAnalyzer();
entDef.setAnalyzer("label", analyzer);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/a7c37dc4/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
----------------------------------------------------------------------
diff --git a/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java b/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
index 8f132f7..c5bb0a4 100644
--- a/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
+++ b/jena-text/src/test/java/org/apache/jena/query/text/TextSearchUtil.java
@@ -28,11 +28,9 @@ import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
-import org.apache.lucene.util.Version;
public class TextSearchUtil {
- private static Version VER = TextIndexLucene.VER ;
- private static final Analyzer analyzer = new StandardAnalyzer(VER);
+ private static final Analyzer analyzer = new StandardAnalyzer();
public static void emptyAndDeleteDirectory(File dir) {
File[] contents = dir.listFiles() ;
@@ -50,8 +48,8 @@ public class TextSearchUtil {
public static void createEmptyIndex(File indexDir) {
try {
- Directory directory = FSDirectory.open(indexDir) ;
- IndexWriterConfig wConfig = new IndexWriterConfig(VER, analyzer) ;
+ Directory directory = FSDirectory.open(indexDir.toPath()) ;
+ IndexWriterConfig wConfig = new IndexWriterConfig(analyzer) ;
// force creation of the index files
try(IndexWriter indexWriter = new IndexWriter(directory, wConfig)) {
}
[4/4] jena git commit: Merge branch 'jena-1250-lucene6'
Posted by os...@apache.org.
Merge branch 'jena-1250-lucene6'
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/973de6be
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/973de6be
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/973de6be
Branch: refs/heads/master
Commit: 973de6be57a7107454531242b2065034bd1a45e6
Parents: c5c15bb 8bba58b
Author: Osma Suominen <os...@helsinki.fi>
Authored: Fri Mar 10 10:38:27 2017 +0200
Committer: Osma Suominen <os...@helsinki.fi>
Committed: Fri Mar 10 10:38:27 2017 +0200
----------------------------------------------------------------------
jena-parent/pom.xml | 12 +++-
jena-spatial/pom.xml | 7 +-
.../main/java/examples/JenaSpatialExample1.java | 2 +-
.../src/main/java/jena/spatialindexdump.java | 2 +-
.../jena/query/spatial/DistanceUnitsUtils.java | 2 +-
.../jena/query/spatial/EntityDefinition.java | 2 +-
.../apache/jena/query/spatial/SpatialIndex.java | 2 +-
.../jena/query/spatial/SpatialIndexContext.java | 2 +-
.../jena/query/spatial/SpatialIndexLucene.java | 18 ++---
.../jena/query/spatial/SpatialIndexSolr.java | 2 +-
.../apache/jena/query/spatial/SpatialQuery.java | 4 +-
.../assembler/EntityDefinitionAssembler.java | 2 +-
.../assembler/SpatialIndexLuceneAssembler.java | 3 +-
.../query/spatial/pfunction/SpatialMatch.java | 2 +-
.../AbstractTestIndexingSpatialData.java | 2 +-
.../jena/query/spatial/SpatialSearchUtil.java | 13 ++--
.../TestEntityDefinitionAssembler.java | 4 +-
jena-text/src/main/java/jena/textindexdump.java | 2 +-
.../jena/query/text/TextDatasetFactory.java | 7 +-
.../apache/jena/query/text/TextIndexLucene.java | 55 +++++++++-----
.../query/text/TextIndexLuceneMultilingual.java | 75 --------------------
.../text/analyzer/ConfigurableAnalyzer.java | 33 +++++----
.../text/analyzer/LowerCaseKeywordAnalyzer.java | 14 +---
.../text/analyzer/MultilingualAnalyzer.java | 54 ++++++++++++++
.../apache/jena/query/text/analyzer/Util.java | 10 +--
.../ConfigurableAnalyzerAssembler.java | 3 +-
.../assembler/LocalizedAnalyzerAssembler.java | 5 +-
.../LowerCaseKeywordAnalyzerAssembler.java | 3 +-
.../text/assembler/SimpleAnalyzerAssembler.java | 3 +-
.../assembler/StandardAnalyzerAssembler.java | 9 ++-
.../assembler/TextIndexLuceneAssembler.java | 5 +-
.../text/TestLuceneWithMultipleThreads.java | 3 +-
.../apache/jena/query/text/TextSearchUtil.java | 8 +--
33 files changed, 176 insertions(+), 194 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/973de6be/jena-parent/pom.xml
----------------------------------------------------------------------
[3/4] jena git commit: Add more informative exception message when
trying to use an old Lucene index. (JENA-1250)
Posted by os...@apache.org.
Add more informative exception message when trying to use an old Lucene index. (JENA-1250)
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/8bba58bb
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/8bba58bb
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/8bba58bb
Branch: refs/heads/master
Commit: 8bba58bb1b17d75ec9a8e1967a0e466f7e45898f
Parents: ac06feb
Author: Osma Suominen <os...@helsinki.fi>
Authored: Fri Mar 10 10:35:24 2017 +0200
Committer: Osma Suominen <os...@helsinki.fi>
Committed: Fri Mar 10 10:35:24 2017 +0200
----------------------------------------------------------------------
.../java/org/apache/jena/query/spatial/SpatialIndexLucene.java | 3 +++
.../main/java/org/apache/jena/query/text/TextIndexLucene.java | 4 ++++
2 files changed, 7 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/8bba58bb/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
index 440df4d..26901da 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
@@ -108,6 +108,9 @@ public class SpatialIndexLucene implements SpatialIndex {
try {
IndexWriterConfig wConfig = new IndexWriterConfig(analyzer);
indexWriter = new IndexWriter(directory, wConfig);
+ } catch (IndexFormatTooOldException e) {
+ throw new SpatialIndexException("jena-spatial/Lucene cannot use indexes created before Jena 3.3.0. "
+ + "Please rebuild your spatial index using jena.spatialindexer from Jena 3.3.0 or above.", e);
} catch (IOException e) {
exception(e);
}
http://git-wip-us.apache.org/repos/asf/jena/blob/8bba58bb/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
index b40ba03..31686ea 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextIndexLucene.java
@@ -131,6 +131,10 @@ public class TextIndexLucene implements TextIndex {
// Force a commit to create the index, otherwise querying before writing will cause an exception
indexWriter.commit();
}
+ catch (IndexFormatTooOldException e) {
+ throw new TextIndexException("jena-text/Lucene cannot use indexes created before Jena 3.3.0. "
+ + "Please rebuild your text index using jena.textindexer from Jena 3.3.0 or above.", e);
+ }
catch (IOException e)
{
throw new TextIndexException(e) ;
[2/4] jena git commit: Upgrade to Lucene 6.4.1 and spatial4j 0.6. Add
normalize method to ConfigurableAnalyzer for Lucene 6.2+ compatibility.
(JENA-1250)
Posted by os...@apache.org.
Upgrade to Lucene 6.4.1 and spatial4j 0.6. Add normalize method to ConfigurableAnalyzer for Lucene 6.2+ compatibility. (JENA-1250)
Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/ac06febf
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/ac06febf
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/ac06febf
Branch: refs/heads/master
Commit: ac06febffd297cb68dfbb11c620601604f657839
Parents: a7c37dc
Author: Osma Suominen <os...@helsinki.fi>
Authored: Fri Mar 3 11:33:08 2017 +0200
Committer: Osma Suominen <os...@helsinki.fi>
Committed: Fri Mar 3 11:53:01 2017 +0200
----------------------------------------------------------------------
jena-parent/pom.xml | 12 +++++++++---
jena-spatial/pom.xml | 7 ++++++-
.../apache/jena/query/spatial/DistanceUnitsUtils.java | 2 +-
.../org/apache/jena/query/spatial/EntityDefinition.java | 2 +-
.../org/apache/jena/query/spatial/SpatialIndex.java | 2 +-
.../apache/jena/query/spatial/SpatialIndexContext.java | 2 +-
.../apache/jena/query/spatial/SpatialIndexLucene.java | 2 +-
.../org/apache/jena/query/spatial/SpatialIndexSolr.java | 2 +-
.../org/apache/jena/query/spatial/SpatialQuery.java | 4 ++--
.../spatial/assembler/EntityDefinitionAssembler.java | 2 +-
.../jena/query/spatial/pfunction/SpatialMatch.java | 2 +-
.../query/spatial/AbstractTestIndexingSpatialData.java | 2 +-
.../assembler/TestEntityDefinitionAssembler.java | 4 ++--
.../jena/query/text/analyzer/ConfigurableAnalyzer.java | 9 +++++++++
.../query/text/assembler/StandardAnalyzerAssembler.java | 2 +-
15 files changed, 38 insertions(+), 18 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-parent/pom.xml
----------------------------------------------------------------------
diff --git a/jena-parent/pom.xml b/jena-parent/pom.xml
index e801e83..5e0c8a9 100644
--- a/jena-parent/pom.xml
+++ b/jena-parent/pom.xml
@@ -72,9 +72,9 @@
<ver.httpclient-osgi>${ver.httpclient}</ver.httpclient-osgi>
<ver.commons-codec>1.10</ver.commons-codec>
- <ver.lucene>5.5.4</ver.lucene>
+ <ver.lucene>6.4.1</ver.lucene>
<ver.solr>4.9.1</ver.solr>
- <ver.spatial4j>0.5</ver.spatial4j>
+ <ver.spatial4j>0.6</ver.spatial4j>
<ver.mockito>1.9.5</ver.mockito>
<ver.awaitility>1.7.0</ver.awaitility>
@@ -286,7 +286,13 @@
</dependency>
<dependency>
- <groupId>com.spatial4j</groupId>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-spatial-extras</artifactId>
+ <version>${ver.lucene}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.locationtech.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
<version>${ver.spatial4j}</version>
</dependency>
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/pom.xml
----------------------------------------------------------------------
diff --git a/jena-spatial/pom.xml b/jena-spatial/pom.xml
index 59aad5e..fc8f948 100644
--- a/jena-spatial/pom.xml
+++ b/jena-spatial/pom.xml
@@ -75,6 +75,11 @@
<dependency>
<groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-spatial-extras</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
<artifactId>lucene-analyzers-common</artifactId>
</dependency>
@@ -84,7 +89,7 @@
</dependency>
<dependency>
- <groupId>com.spatial4j</groupId>
+ <groupId>org.locationtech.spatial4j</groupId>
<artifactId>spatial4j</artifactId>
</dependency>
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
index 2d1ab58..e0a4c25 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/DistanceUnitsUtils.java
@@ -21,7 +21,7 @@ package org.apache.jena.query.spatial;
import java.util.ArrayList;
import java.util.List;
-import com.spatial4j.core.distance.DistanceUtils;
+import org.locationtech.spatial4j.distance.DistanceUtils;
public class DistanceUnitsUtils {
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/EntityDefinition.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/EntityDefinition.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/EntityDefinition.java
index 58f100b..975161b 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/EntityDefinition.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/EntityDefinition.java
@@ -28,7 +28,7 @@ import org.apache.jena.rdf.model.Property ;
import org.apache.jena.rdf.model.Resource ;
import org.apache.jena.rdf.model.ResourceFactory ;
-import com.spatial4j.core.context.SpatialContextFactory;
+import org.locationtech.spatial4j.context.SpatialContextFactory;
/**
* Definition of a "document"
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndex.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndex.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndex.java
index 9c9bf6f..ea7d240 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndex.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndex.java
@@ -24,7 +24,7 @@ import org.apache.jena.atlas.lib.Closeable;
import org.apache.jena.graph.Node ;
import org.apache.lucene.spatial.query.SpatialOperation;
-import com.spatial4j.core.shape.Shape;
+import org.locationtech.spatial4j.shape.Shape;
/** SpatialIndex abstraction */
public interface SpatialIndex extends Closeable //, Transactional
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
index 2fc7953..fe55656 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexContext.java
@@ -27,7 +27,7 @@ import java.util.Set;
import org.apache.jena.atlas.logging.Log ;
import org.apache.jena.graph.Node ;
-import com.spatial4j.core.shape.Shape;
+import org.locationtech.spatial4j.shape.Shape;
public class SpatialIndexContext {
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
index 85a8bb4..440df4d 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexLucene.java
@@ -40,7 +40,7 @@ import org.apache.lucene.store.Directory ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
-import com.spatial4j.core.shape.Shape ;
+import org.locationtech.spatial4j.shape.Shape ;
public class SpatialIndexLucene implements SpatialIndex {
private static Logger log = LoggerFactory
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexSolr.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexSolr.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexSolr.java
index 507e6ee..49a6fb8 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexSolr.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialIndexSolr.java
@@ -38,7 +38,7 @@ import org.apache.solr.common.SolrInputDocument ;
import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
-import com.spatial4j.core.shape.Shape ;
+import org.locationtech.spatial4j.shape.Shape ;
public class SpatialIndexSolr implements SpatialIndex {
private static Logger log = LoggerFactory.getLogger(SpatialIndexSolr.class);
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
index b860f2f..058e1bd 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/SpatialQuery.java
@@ -18,7 +18,7 @@
package org.apache.jena.query.spatial;
-import com.spatial4j.core.context.SpatialContext ;
+import org.locationtech.spatial4j.context.SpatialContext ;
import org.apache.jena.query.spatial.assembler.SpatialAssembler ;
import org.apache.jena.query.spatial.pfunction.library.* ;
@@ -51,7 +51,7 @@ public class SpatialQuery
public static SpatialContext ctx = SpatialContext.GEO;
// an optional feature for WKT literals, loaded when necessary, but not required
- public static final String JTS_SPATIAL_CONTEXT_FACTORY_CLASS = "com.spatial4j.core.context.jts.JtsSpatialContextFactory";
+ public static final String JTS_SPATIAL_CONTEXT_FACTORY_CLASS = "org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory";
static { JenaSystem.init(); }
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/EntityDefinitionAssembler.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/EntityDefinitionAssembler.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/EntityDefinitionAssembler.java
index dc19ee5..d32f722 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/EntityDefinitionAssembler.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/assembler/EntityDefinitionAssembler.java
@@ -48,7 +48,7 @@ public class EntityDefinitionAssembler extends AssemblerBase implements Assemble
) ;
spatial:hasWKTPredicates (<#wkt_1> <#wkt_2>) ;
spatial:spatialContextFactory
- "com.spatial4j.core.context.jts.JtsSpatialContextFactory" .
+ "org.locationtech.spatial4j.context.jts.JtsSpatialContextFactory" .
*/
@Override
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
index 0d8275c..3c0c660 100644
--- a/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
+++ b/jena-spatial/src/main/java/org/apache/jena/query/spatial/pfunction/SpatialMatch.java
@@ -22,7 +22,7 @@ import org.apache.jena.query.spatial.DistanceUnitsUtils;
import org.apache.jena.query.spatial.SpatialQuery;
import org.apache.lucene.spatial.query.SpatialOperation;
-import com.spatial4j.core.shape.Shape;
+import org.locationtech.spatial4j.shape.Shape;
public class SpatialMatch {
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
index 000b6ff..864b16b 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/AbstractTestIndexingSpatialData.java
@@ -26,7 +26,7 @@ import org.apache.jena.atlas.lib.StrUtils;
import org.junit.Test;
import static org.junit.Assert.fail;
-import com.spatial4j.core.exception.InvalidShapeException;
+import org.locationtech.spatial4j.exception.InvalidShapeException;
public class AbstractTestIndexingSpatialData extends
AbstractTestDatasetWithSpatialIndex {
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-spatial/src/test/java/org/apache/jena/query/spatial/assembler/TestEntityDefinitionAssembler.java
----------------------------------------------------------------------
diff --git a/jena-spatial/src/test/java/org/apache/jena/query/spatial/assembler/TestEntityDefinitionAssembler.java b/jena-spatial/src/test/java/org/apache/jena/query/spatial/assembler/TestEntityDefinitionAssembler.java
index 12376b3..4e2c4d5 100644
--- a/jena-spatial/src/test/java/org/apache/jena/query/spatial/assembler/TestEntityDefinitionAssembler.java
+++ b/jena-spatial/src/test/java/org/apache/jena/query/spatial/assembler/TestEntityDefinitionAssembler.java
@@ -105,10 +105,10 @@ public class TestEntityDefinitionAssembler {
EntityDefinitionAssembler emAssembler = new EntityDefinitionAssembler();
emAssembler.open(null, spec3, null);
if (jts_lib_ready) {
- assertEquals("com.spatial4j.core.context.jts.JtsSpatialContext",
+ assertEquals("org.locationtech.spatial4j.context.jts.JtsSpatialContext",
SpatialQuery.ctx.getClass().getName());
} else {
- assertEquals("com.spatial4j.core.context.SpatialContext",
+ assertEquals("org.locationtech.spatial4j.context.SpatialContext",
SpatialQuery.ctx.getClass().getName());
}
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
index 8960ddb..2008445 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/analyzer/ConfigurableAnalyzer.java
@@ -86,4 +86,13 @@ public class ConfigurableAnalyzer extends Analyzer {
return new TokenStreamComponents(source, stream);
}
+ @Override
+ protected TokenStream normalize(String fieldName, TokenStream in) {
+ TokenStream stream = in;
+ for (String filter : this.filters) {
+ stream = getTokenFilter(filter, stream);
+ }
+ return stream;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/jena/blob/ac06febf/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java b/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
index e221d19..a4e0070 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/assembler/StandardAnalyzerAssembler.java
@@ -32,7 +32,7 @@ import org.apache.jena.rdf.model.Statement ;
import org.apache.jena.vocabulary.RDF ;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
-import org.apache.lucene.analysis.util.CharArraySet;
+import org.apache.lucene.analysis.CharArraySet;
/**
* Assembler to create standard analyzers with keyword list.