You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@solr.apache.org by ds...@apache.org on 2023/04/05 04:47:29 UTC
[solr] 01/02: SOLR 16642 : upgrade Solr to use Lucene 9.5.0 (#1360)
This is an automated email from the ASF dual-hosted git repository.
dsmiley pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git
commit d8d30d8add0c9a94be68821f700fde77c4c73a1c
Author: vinayak hegde <vi...@gmail.com>
AuthorDate: Mon Apr 3 22:57:20 2023 -0400
SOLR 16642 : upgrade Solr to use Lucene 9.5.0 (#1360)
* SlowAtomicReader should throw UnsupportedOperationException for all unimplementable methods, namely the nearest-neighbor ones.
* MMapDirectoryFactory no longer supports "unmap" param but can be done differently.
* SlowCompositeReaderWrapper can no longer cache Terms.
* ComplexPhrase QParser: can't highlight when hl.usePhraseHighlighter=false due to UnifiedHighlighter change.
* revert SOLR-16500; Java 19 is supported already by Lucene
* Possible perf regression for timeAllowed param; to be addressed separately
Co-authored-by: David Smiley <ds...@salesforce.com>
---
solr/CHANGES.txt | 4 +-
solr/bin/solr | 6 ---
solr/bin/solr.cmd | 7 ---
.../org/apache/solr/core/MMapDirectoryFactory.java | 13 +++--
.../org/apache/solr/core/SchemaCodecFactory.java | 10 ++--
.../apache/solr/handler/MoreLikeThisHandler.java | 2 +-
.../solr/handler/admin/IndexSizeEstimator.java | 2 +-
.../solr/index/SlowCompositeReaderWrapper.java | 57 +++++++++++++---------
.../apache/solr/parser/SolrQueryParserBase.java | 9 ++--
.../org/apache/solr/schema/DenseVectorField.java | 4 +-
.../org/apache/solr/search/SolrIndexSearcher.java | 14 +-----
.../apache/solr/search/SolrQueryTimeoutImpl.java | 1 -
.../solr/spelling/suggest/DictionaryFactory.java | 3 +-
.../suggest/DocumentDictionaryFactory.java | 3 +-
.../DocumentExpressionDictionaryFactory.java | 3 +-
.../processor/ClassificationUpdateProcessor.java | 30 +++++++-----
.../org/apache/solr/core/TestCodecSupport.java | 2 +-
.../solr/handler/admin/IndexSizeEstimatorTest.java | 2 +-
.../solr/index/TestSlowCompositeReaderWrapper.java | 30 ------------
.../search/TestComplexPhraseQParserPlugin.java | 22 ++++-----
.../test/org/apache/solr/search/TestDocSet.java | 28 ++++++++++-
.../AtomicUpdateProcessorFactoryTest.java | 2 +-
.../UpdateRequestProcessorFactoryTest.java | 3 +-
solr/licenses/antlr4-runtime-4.11.1.jar.sha1 | 1 +
solr/licenses/antlr4-runtime-4.5.1-1.jar.sha1 | 1 -
.../licenses/lucene-analysis-common-9.4.2.jar.sha1 | 1 -
.../licenses/lucene-analysis-common-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-analysis-icu-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-analysis-icu-9.5.0.jar.sha1 | 1 +
.../lucene-analysis-kuromoji-9.4.2.jar.sha1 | 1 -
.../lucene-analysis-kuromoji-9.5.0.jar.sha1 | 1 +
.../lucene-analysis-morfologik-9.4.2.jar.sha1 | 1 -
.../lucene-analysis-morfologik-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-analysis-nori-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-analysis-nori-9.5.0.jar.sha1 | 1 +
.../lucene-analysis-opennlp-9.4.2.jar.sha1 | 1 -
.../lucene-analysis-opennlp-9.5.0.jar.sha1 | 1 +
.../lucene-analysis-phonetic-9.4.2.jar.sha1 | 1 -
.../lucene-analysis-phonetic-9.5.0.jar.sha1 | 1 +
.../lucene-analysis-smartcn-9.4.2.jar.sha1 | 1 -
.../lucene-analysis-smartcn-9.5.0.jar.sha1 | 1 +
.../lucene-analysis-stempel-9.4.2.jar.sha1 | 1 -
.../lucene-analysis-stempel-9.5.0.jar.sha1 | 1 +
.../licenses/lucene-backward-codecs-9.4.2.jar.sha1 | 1 -
.../licenses/lucene-backward-codecs-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-classification-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-classification-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-codecs-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-codecs-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-core-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-core-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-expressions-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-expressions-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-grouping-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-grouping-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-highlighter-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-highlighter-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-join-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-join-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-memory-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-memory-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-misc-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-misc-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-queries-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-queries-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-queryparser-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-queryparser-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-sandbox-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-sandbox-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-spatial-extras-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-spatial-extras-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-spatial3d-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-spatial3d-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-suggest-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-suggest-9.5.0.jar.sha1 | 1 +
solr/licenses/lucene-test-framework-9.4.2.jar.sha1 | 1 -
solr/licenses/lucene-test-framework-9.5.0.jar.sha1 | 1 +
...ExtractNamedEntitiesUpdateProcessorFactory.java | 32 ++++++------
.../solr/configsets/_default/conf/solrconfig.xml | 2 +-
.../conf/solrconfig.xml | 2 +-
versions.lock | 54 ++++++++++----------
versions.props | 2 +-
82 files changed, 195 insertions(+), 208 deletions(-)
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index 5a3603ed9e3..3ffb07d6bf4 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -67,6 +67,8 @@ Dependency Upgrades
---------------------
* PR#1494: Upgrade forbiddenapis to 3.5 (Uwe Schindler)
+* SOLR-16642: Upgrade to Lucene 9.5.0 (Vinayak Hegde, David Smiley)
+
Other Changes
---------------------
@@ -290,7 +292,7 @@ Bug Fixes
* SOLR-16679: Fix solr.jetty.ssl.verifyClientHostName logging (Kevin Risden)
-* SOLR-16682: MoreLikeThis Component fails with SyntaxError: Cannot parse if document terms contains symbols from query parser syntax
+* SOLR-16682: MoreLikeThis Component fails with SyntaxError: Cannot parse if document terms contains symbols from query parser syntax
(Mikhail Khludnev)
* SOLR-16656: rid parameter missing from query logs (Alex Deparvu)
diff --git a/solr/bin/solr b/solr/bin/solr
index 45a844995ea..6a3ed2933ba 100644
--- a/solr/bin/solr
+++ b/solr/bin/solr
@@ -2275,12 +2275,6 @@ function start_solr() {
echo "Java $JAVA_VER_NUM detected. Enabled workaround for SOLR-16463"
fi
- # Added --enable-preview for JDK 19 to enable MemorySegment support in MMapDirectory, see https://issues.apache.org/jira/browse/SOLR-16500
- if [[ "$JAVA_VER_NUM" -eq "19" ]] ; then
- SOLR_OPTS+=("--enable-preview")
- echo "Java $JAVA_VER_NUM detected. Added --enable-preview to enable MemorySegment support in MMapDirectory. See SOLR-16500"
- fi
-
SOLR_START_OPTS=('-server' "${JAVA_MEM_OPTS[@]}" "${GC_TUNE_ARR[@]}" "${GC_LOG_OPTS[@]}" "${IP_ACL_OPTS[@]}" \
"${REMOTE_JMX_OPTS[@]}" "${CLOUD_MODE_OPTS[@]}" ${SOLR_LOG_LEVEL_OPT:-} -Dsolr.log.dir="$SOLR_LOGS_DIR" \
"-Djetty.port=$SOLR_PORT" "-DSTOP.PORT=$stop_port" "-DSTOP.KEY=$STOP_KEY" \
diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd
index 77b1b2263ab..6a025dab2c6 100755
--- a/solr/bin/solr.cmd
+++ b/solr/bin/solr.cmd
@@ -1280,13 +1280,6 @@ if !JAVA_MAJOR_VERSION! GEQ 17 (
echo Java %JAVA_MAJOR_VERSION% detected. Enabled workaround for SOLR-16463
)
-REM Added --enable-preview for JDK 19 to enable MemorySegment support in MMapDirectory. See https://issues.apache.org/jira/browse/SOLR-16500
-
-if !JAVA_MAJOR_VERSION! EQU 19 (
- set SOLR_OPTS=%SOLR_OPTS% --enable-preview
- echo Java $JAVA_VER_NUM detected. Added --enable-preview to enable MemorySegment support in MMapDirectory. See SOLR-16500
-)
-
if !JAVA_MAJOR_VERSION! GEQ 9 if NOT "%JAVA_VENDOR%" == "OpenJ9" (
IF NOT "%GC_LOG_OPTS%"=="" (
echo ERROR: On Java 9 you cannot set GC_LOG_OPTS, only default GC logging is available. Exiting
diff --git a/solr/core/src/java/org/apache/solr/core/MMapDirectoryFactory.java b/solr/core/src/java/org/apache/solr/core/MMapDirectoryFactory.java
index b2b40297967..30735cc696d 100644
--- a/solr/core/src/java/org/apache/solr/core/MMapDirectoryFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/MMapDirectoryFactory.java
@@ -42,7 +42,6 @@ import org.slf4j.LoggerFactory;
*/
public class MMapDirectoryFactory extends StandardDirectoryFactory {
private static final Logger log = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
- boolean unmapHack;
boolean preload;
private long maxChunk;
@@ -54,7 +53,12 @@ public class MMapDirectoryFactory extends StandardDirectoryFactory {
if (maxChunk <= 0) {
throw new IllegalArgumentException("maxChunk must be greater than 0");
}
- unmapHack = params.getBool("unmap", true);
+ if (params.get("unmap") != null) {
+ log.warn(
+ "It is no longer possible to configure unmapping of index files on DirectoryFactory level in solrconfig.xml.");
+ log.warn(
+ "To disable unmapping, pass -Dorg.apache.lucene.store.MMapDirectory.enableUnmapHack=false on Solr's command line.");
+ }
preload = params.getBool("preload", false); // default turn-off
}
@@ -62,11 +66,6 @@ public class MMapDirectoryFactory extends StandardDirectoryFactory {
protected Directory create(String path, LockFactory lockFactory, DirContext dirContext)
throws IOException {
MMapDirectory mapDirectory = new MMapDirectory(Path.of(path), lockFactory, maxChunk);
- try {
- mapDirectory.setUseUnmap(unmapHack);
- } catch (IllegalArgumentException e) {
- log.warn("Unmap not supported on this JVM, continuing on without setting unmap", e);
- }
mapDirectory.setPreload(preload);
return mapDirectory;
}
diff --git a/solr/core/src/java/org/apache/solr/core/SchemaCodecFactory.java b/solr/core/src/java/org/apache/solr/core/SchemaCodecFactory.java
index 45e8332a0b5..8615e0a32ef 100644
--- a/solr/core/src/java/org/apache/solr/core/SchemaCodecFactory.java
+++ b/solr/core/src/java/org/apache/solr/core/SchemaCodecFactory.java
@@ -23,9 +23,9 @@ import org.apache.lucene.codecs.Codec;
import org.apache.lucene.codecs.DocValuesFormat;
import org.apache.lucene.codecs.KnnVectorsFormat;
import org.apache.lucene.codecs.PostingsFormat;
-import org.apache.lucene.codecs.lucene94.Lucene94Codec;
-import org.apache.lucene.codecs.lucene94.Lucene94Codec.Mode;
-import org.apache.lucene.codecs.lucene94.Lucene94HnswVectorsFormat;
+import org.apache.lucene.codecs.lucene95.Lucene95Codec;
+import org.apache.lucene.codecs.lucene95.Lucene95Codec.Mode;
+import org.apache.lucene.codecs.lucene95.Lucene95HnswVectorsFormat;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrException.ErrorCode;
import org.apache.solr.common.util.NamedList;
@@ -92,7 +92,7 @@ public class SchemaCodecFactory extends CodecFactory implements SolrCoreAware {
log.debug("Using default compressionMode: {}", compressionMode);
}
codec =
- new Lucene94Codec(compressionMode) {
+ new Lucene95Codec(compressionMode) {
@Override
public PostingsFormat getPostingsFormatForField(String field) {
final SchemaField schemaField = core.getLatestSchema().getFieldOrNull(field);
@@ -127,7 +127,7 @@ public class SchemaCodecFactory extends CodecFactory implements SolrCoreAware {
if (DenseVectorField.HNSW_ALGORITHM.equals(knnAlgorithm)) {
int maxConn = vectorType.getHnswMaxConn();
int beamWidth = vectorType.getHnswBeamWidth();
- return new Lucene94HnswVectorsFormat(maxConn, beamWidth);
+ return new Lucene95HnswVectorsFormat(maxConn, beamWidth);
} else {
throw new SolrException(
ErrorCode.SERVER_ERROR, knnAlgorithm + " KNN algorithm is not supported");
diff --git a/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java b/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
index 31c65babb28..155ba9ea075 100644
--- a/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
+++ b/solr/core/src/java/org/apache/solr/handler/MoreLikeThisHandler.java
@@ -291,7 +291,7 @@ public class MoreLikeThisHandler extends RequestHandlerBase {
final boolean needDocSet;
Map<String, Float> boostFields;
- public MoreLikeThisHelper(SolrParams params, SolrIndexSearcher searcher) {
+ public MoreLikeThisHelper(SolrParams params, SolrIndexSearcher searcher) throws IOException {
this.searcher = searcher;
this.reader = searcher.getIndexReader();
this.uniqueKeyField = searcher.getSchema().getUniqueKeyField();
diff --git a/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java b/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
index 2296d7ed193..b4f222a7a49 100644
--- a/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
+++ b/solr/core/src/java/org/apache/solr/handler/admin/IndexSizeEstimator.java
@@ -602,7 +602,7 @@ public class IndexSizeEstimator {
if (liveDocs != null && !liveDocs.get(docId)) {
continue;
}
- mergeInstance.visitDocument(docId, visitor);
+ mergeInstance.document(docId, visitor);
}
if (mergeInstance != storedFieldsReader) {
mergeInstance.close();
diff --git a/solr/core/src/java/org/apache/solr/index/SlowCompositeReaderWrapper.java b/solr/core/src/java/org/apache/solr/index/SlowCompositeReaderWrapper.java
index 68197308ca8..b066ba373fd 100644
--- a/solr/core/src/java/org/apache/solr/index/SlowCompositeReaderWrapper.java
+++ b/solr/core/src/java/org/apache/solr/index/SlowCompositeReaderWrapper.java
@@ -22,6 +22,7 @@ import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import org.apache.lucene.index.BinaryDocValues;
+import org.apache.lucene.index.ByteVectorValues;
import org.apache.lucene.index.CompositeReader;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.DocValues;
@@ -29,6 +30,7 @@ import org.apache.lucene.index.DocValuesType;
import org.apache.lucene.index.FieldInfo;
import org.apache.lucene.index.FieldInfos;
import org.apache.lucene.index.Fields;
+import org.apache.lucene.index.FloatVectorValues;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafMetaData;
import org.apache.lucene.index.LeafReader;
@@ -45,8 +47,9 @@ import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.index.SortedNumericDocValues;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.index.StoredFieldVisitor;
+import org.apache.lucene.index.StoredFields;
+import org.apache.lucene.index.TermVectors;
import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.VectorValues;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.Version;
@@ -73,8 +76,6 @@ public final class SlowCompositeReaderWrapper extends LeafReader {
// also have a cached FieldInfos instance so this is consistent. SOLR-12878
private final FieldInfos fieldInfos;
- final Map<String, Terms> cachedTerms = new ConcurrentHashMap<>();
-
// TODO: this could really be a weak map somewhere else on the coreCacheKey,
// but do we really need to optimize slow-wrapper any more?
final Map<String, OrdinalMap> cachedOrdMaps = new ConcurrentHashMap<>();
@@ -136,23 +137,7 @@ public final class SlowCompositeReaderWrapper extends LeafReader {
@Override
public Terms terms(String field) throws IOException {
ensureOpen();
- try {
- return cachedTerms.computeIfAbsent(
- field,
- f -> {
- try {
- return MultiTerms.getTerms(in, f);
- } catch (IOException e) {
- // yuck! ...sigh... checked exceptions with built-in lambdas are a pain
- throw new RuntimeException("unwrapMe", e);
- }
- });
- } catch (RuntimeException e) {
- if (e.getMessage().equals("unwrapMe") && e.getCause() instanceof IOException) {
- throw (IOException) e.getCause();
- }
- throw e;
- }
+ return MultiTerms.getTerms(in, field);
}
@Override
@@ -328,6 +313,18 @@ public final class SlowCompositeReaderWrapper extends LeafReader {
return in.getTermVectors(docID);
}
+ @Override
+ public TermVectors termVectors() throws IOException {
+ ensureOpen();
+ return in.termVectors();
+ }
+
+ @Override
+ public StoredFields storedFields() throws IOException {
+ ensureOpen();
+ return in.storedFields();
+ }
+
@Override
public int numDocs() {
// Don't call ensureOpen() here (it could affect performance)
@@ -355,19 +352,31 @@ public final class SlowCompositeReaderWrapper extends LeafReader {
@Override
public PointValues getPointValues(String field) {
ensureOpen();
- return null; // because not supported. Throw UOE?
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public FloatVectorValues getFloatVectorValues(String field) {
+ ensureOpen();
+ throw new UnsupportedOperationException();
}
@Override
- public VectorValues getVectorValues(String field) {
+ public ByteVectorValues getByteVectorValues(String field) {
ensureOpen();
- return VectorValues.EMPTY;
+ throw new UnsupportedOperationException();
}
@Override
public TopDocs searchNearestVectors(
String field, float[] target, int k, Bits acceptDocs, int visitedLimit) throws IOException {
- return null;
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public TopDocs searchNearestVectors(
+ String field, byte[] target, int k, Bits acceptDocs, int visitedLimit) throws IOException {
+ throw new UnsupportedOperationException();
}
@Override
diff --git a/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java b/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
index c0f641d52ed..9f3f393bbf0 100644
--- a/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
+++ b/solr/core/src/java/org/apache/solr/parser/SolrQueryParserBase.java
@@ -624,23 +624,24 @@ public abstract class SolrQueryParserBase extends QueryBuilder {
}
@Override
- protected Query newSynonymQuery(TermAndBoost[] terms) {
+ protected Query newSynonymQuery(String field, TermAndBoost[] terms) {
switch (synonymQueryStyle) {
case PICK_BEST:
List<Query> currPosnClauses = new ArrayList<>(terms.length);
for (TermAndBoost term : terms) {
- currPosnClauses.add(newTermQuery(term.term, term.boost));
+ currPosnClauses.add(newTermQuery(new Term(field, term.term), term.boost));
}
DisjunctionMaxQuery dm = new DisjunctionMaxQuery(currPosnClauses, 0.0f);
return dm;
case AS_DISTINCT_TERMS:
BooleanQuery.Builder builder = new BooleanQuery.Builder();
for (TermAndBoost term : terms) {
- builder.add(newTermQuery(term.term, term.boost), BooleanClause.Occur.SHOULD);
+ builder.add(
+ newTermQuery(new Term(field, term.term), term.boost), BooleanClause.Occur.SHOULD);
}
return builder.build();
case AS_SAME_TERM:
- return super.newSynonymQuery(terms);
+ return super.newSynonymQuery(field, terms);
default:
throw new AssertionError(
"unrecognized synonymQueryStyle passed when creating newSynonymQuery");
diff --git a/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java b/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
index e41bc161dda..c59b0ead0bb 100644
--- a/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
+++ b/solr/core/src/java/org/apache/solr/schema/DenseVectorField.java
@@ -17,8 +17,8 @@
package org.apache.solr.schema;
import static java.util.Optional.ofNullable;
-import static org.apache.lucene.codecs.lucene94.Lucene94HnswVectorsFormat.DEFAULT_BEAM_WIDTH;
-import static org.apache.lucene.codecs.lucene94.Lucene94HnswVectorsFormat.DEFAULT_MAX_CONN;
+import static org.apache.lucene.codecs.lucene95.Lucene95HnswVectorsFormat.DEFAULT_BEAM_WIDTH;
+import static org.apache.lucene.codecs.lucene95.Lucene95HnswVectorsFormat.DEFAULT_MAX_CONN;
import java.util.ArrayList;
import java.util.List;
diff --git a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
index 7d5c8e705c2..b12db8b8772 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrIndexSearcher.java
@@ -465,19 +465,7 @@ public class SolrIndexSearcher extends IndexSearcher implements Closeable, SolrI
}
public CollectionStatistics localCollectionStatistics(String field) throws IOException {
- // Could call super.collectionStatistics(field); but we can use a cached MultiTerms
- assert field != null;
- // SlowAtomicReader has a cache of MultiTerms
- Terms terms = getSlowAtomicReader().terms(field);
- if (terms == null) {
- return null;
- }
- return new CollectionStatistics(
- field,
- reader.maxDoc(),
- terms.getDocCount(),
- terms.getSumTotalTermFreq(),
- terms.getSumDocFreq());
+ return super.collectionStatistics(field);
}
public boolean isCachingEnabled() {
diff --git a/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java b/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java
index 699b656793a..bc096ae2ef4 100644
--- a/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java
+++ b/solr/core/src/java/org/apache/solr/search/SolrQueryTimeoutImpl.java
@@ -45,7 +45,6 @@ public class SolrQueryTimeoutImpl implements QueryTimeout {
return timeoutAt.get();
}
- @Override
public boolean isTimeoutEnabled() {
return getTimeoutAtNs() != null;
}
diff --git a/solr/core/src/java/org/apache/solr/spelling/suggest/DictionaryFactory.java b/solr/core/src/java/org/apache/solr/spelling/suggest/DictionaryFactory.java
index d8f243bda8d..f45012bf1cf 100644
--- a/solr/core/src/java/org/apache/solr/spelling/suggest/DictionaryFactory.java
+++ b/solr/core/src/java/org/apache/solr/spelling/suggest/DictionaryFactory.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.spelling.suggest;
+import java.io.IOException;
import org.apache.lucene.search.spell.Dictionary;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.core.SolrCore;
@@ -41,5 +42,5 @@ public abstract class DictionaryFactory {
* Create a Dictionary using options in <code>core</code> and optionally uses <code>searcher
* </code>, in case of index based dictionaries
*/
- public abstract Dictionary create(SolrCore core, SolrIndexSearcher searcher);
+ public abstract Dictionary create(SolrCore core, SolrIndexSearcher searcher) throws IOException;
}
diff --git a/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentDictionaryFactory.java b/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentDictionaryFactory.java
index 4e45688dacc..42b70bc063c 100644
--- a/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentDictionaryFactory.java
+++ b/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentDictionaryFactory.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.spelling.suggest;
+import java.io.IOException;
import org.apache.lucene.search.spell.Dictionary;
import org.apache.lucene.search.suggest.DocumentDictionary;
import org.apache.solr.core.SolrCore;
@@ -33,7 +34,7 @@ public class DocumentDictionaryFactory extends DictionaryFactory {
public static final String CONTEXT_FIELD = "contextField";
@Override
- public Dictionary create(SolrCore core, SolrIndexSearcher searcher) {
+ public Dictionary create(SolrCore core, SolrIndexSearcher searcher) throws IOException {
if (params == null) {
// should not happen; implies setParams was not called
throw new IllegalStateException("Value of params not set");
diff --git a/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentExpressionDictionaryFactory.java b/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentExpressionDictionaryFactory.java
index a5ce5f11aa1..2b943eb653c 100644
--- a/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentExpressionDictionaryFactory.java
+++ b/solr/core/src/java/org/apache/solr/spelling/suggest/DocumentExpressionDictionaryFactory.java
@@ -16,6 +16,7 @@
*/
package org.apache.solr.spelling.suggest;
+import java.io.IOException;
import java.text.ParseException;
import java.util.HashSet;
import java.util.Set;
@@ -46,7 +47,7 @@ public class DocumentExpressionDictionaryFactory extends DictionaryFactory {
public static final String SORT_FIELD = "sortField";
@Override
- public Dictionary create(SolrCore core, SolrIndexSearcher searcher) {
+ public Dictionary create(SolrCore core, SolrIndexSearcher searcher) throws IOException {
if (params == null) {
// should not happen; implies setParams was not called
throw new IllegalStateException("Value of params not set");
diff --git a/solr/core/src/java/org/apache/solr/update/processor/ClassificationUpdateProcessor.java b/solr/core/src/java/org/apache/solr/update/processor/ClassificationUpdateProcessor.java
index b85f4863d22..f7bc7fa8c1d 100644
--- a/solr/core/src/java/org/apache/solr/update/processor/ClassificationUpdateProcessor.java
+++ b/solr/core/src/java/org/apache/solr/update/processor/ClassificationUpdateProcessor.java
@@ -29,6 +29,7 @@ import org.apache.lucene.classification.document.SimpleNaiveBayesDocumentClassif
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.util.BytesRef;
+import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.schema.IndexSchema;
import org.apache.solr.schema.SchemaField;
@@ -77,17 +78,24 @@ class ClassificationUpdateProcessor extends UpdateRequestProcessor {
}
switch (classificationAlgorithm) {
case KNN:
- classifier =
- new KNearestNeighborDocumentClassifier(
- indexReader,
- null,
- classificationParams.getTrainingFilterQuery(),
- classificationParams.getK(),
- classificationParams.getMinDf(),
- classificationParams.getMinTf(),
- trainingClassField,
- field2analyzer,
- inputFieldNamesWithBoost);
+ try {
+ classifier =
+ new KNearestNeighborDocumentClassifier(
+ indexReader,
+ null,
+ classificationParams.getTrainingFilterQuery(),
+ classificationParams.getK(),
+ classificationParams.getMinDf(),
+ classificationParams.getMinTf(),
+ trainingClassField,
+ field2analyzer,
+ inputFieldNamesWithBoost);
+ } catch (IOException e) {
+ throw new SolrException(
+ SolrException.ErrorCode.SERVER_ERROR,
+ "IOException occurred while instantiating KNearestNeighborDocumentClassifier",
+ e);
+ }
break;
case BAYES:
classifier =
diff --git a/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java b/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
index b91e7c83d85..6681af15c12 100644
--- a/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
+++ b/solr/core/src/test/org/apache/solr/core/TestCodecSupport.java
@@ -21,7 +21,7 @@ import static org.apache.lucene.codecs.lucene90.Lucene90StoredFieldsFormat.MODE_
import java.io.IOException;
import java.util.Map;
import org.apache.lucene.codecs.Codec;
-import org.apache.lucene.codecs.lucene94.Lucene94Codec.Mode;
+import org.apache.lucene.codecs.lucene95.Lucene95Codec.Mode;
import org.apache.lucene.codecs.perfield.PerFieldDocValuesFormat;
import org.apache.lucene.codecs.perfield.PerFieldPostingsFormat;
import org.apache.lucene.index.SegmentInfo;
diff --git a/solr/core/src/test/org/apache/solr/handler/admin/IndexSizeEstimatorTest.java b/solr/core/src/test/org/apache/solr/handler/admin/IndexSizeEstimatorTest.java
index 6f5c156ce94..e175497aa36 100644
--- a/solr/core/src/test/org/apache/solr/handler/admin/IndexSizeEstimatorTest.java
+++ b/solr/core/src/test/org/apache/solr/handler/admin/IndexSizeEstimatorTest.java
@@ -149,7 +149,7 @@ public class IndexSizeEstimatorTest extends SolrCloudTestCase {
if (liveDocs != null && !liveDocs.get(docId)) {
continue;
}
- storedFieldsReader.visitDocument(docId, visitor);
+ storedFieldsReader.document(docId, visitor);
}
}
} finally {
diff --git a/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java b/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
index 9862ac06ddd..bc6b699f1bf 100644
--- a/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
+++ b/solr/core/src/test/org/apache/solr/index/TestSlowCompositeReaderWrapper.java
@@ -21,16 +21,13 @@ import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.atomic.AtomicInteger;
import org.apache.lucene.document.Document;
-import org.apache.lucene.document.Field;
import org.apache.lucene.document.SortedDocValuesField;
import org.apache.lucene.document.SortedSetDocValuesField;
-import org.apache.lucene.document.TextField;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.MultiDocValues.MultiSortedDocValues;
import org.apache.lucene.index.MultiDocValues.MultiSortedSetDocValues;
-import org.apache.lucene.index.MultiTerms;
import org.apache.lucene.index.NoMergePolicy;
import org.apache.lucene.store.Directory;
import org.apache.lucene.tests.index.RandomIndexWriter;
@@ -129,31 +126,4 @@ public class TestSlowCompositeReaderWrapper extends SolrTestCase {
w.close();
dir.close();
}
-
- public void testTermsAreCached() throws IOException {
- Directory dir = newDirectory();
- RandomIndexWriter w =
- new RandomIndexWriter(
- random(), dir, newIndexWriterConfig().setMergePolicy(NoMergePolicy.INSTANCE));
- Document doc = new Document();
- doc.add(new TextField("text", "hello world", Field.Store.NO));
- w.addDocument(doc);
- w.getReader().close();
- doc = new Document();
- doc.add(new TextField("text", "cruel world", Field.Store.NO));
- w.addDocument(doc);
-
- IndexReader reader = w.getReader();
- assertTrue(reader.leaves().size() > 1);
- SlowCompositeReaderWrapper slowWrapper =
- (SlowCompositeReaderWrapper) SlowCompositeReaderWrapper.wrap(reader);
- assertEquals(0, slowWrapper.cachedTerms.size());
- assertEquals(MultiTerms.class, slowWrapper.terms("text").getClass());
- assertEquals(1, slowWrapper.cachedTerms.size());
- assertNull(slowWrapper.terms("bogusField"));
- assertEquals(1, slowWrapper.cachedTerms.size()); // bogus field isn't cached
- reader.close();
- w.close();
- dir.close();
- }
}
diff --git a/solr/core/src/test/org/apache/solr/search/TestComplexPhraseQParserPlugin.java b/solr/core/src/test/org/apache/solr/search/TestComplexPhraseQParserPlugin.java
index 84d0060d9a8..42d0eae5f65 100644
--- a/solr/core/src/test/org/apache/solr/search/TestComplexPhraseQParserPlugin.java
+++ b/solr/core/src/test/org/apache/solr/search/TestComplexPhraseQParserPlugin.java
@@ -211,6 +211,7 @@ public class TestComplexPhraseQParserPlugin extends SolrTestCaseJ4 {
"//lst[@name='highlighting']/lst[@name='2']",
"//lst[@name='2']/arr[@name='name']/str[.='<em>johathon</em> <em>smith</em> smith johathon']");
+ /* no longer supported since Lucene 9.5 but that's okay!
args.put(HighlightParams.USE_PHRASE_HIGHLIGHTER, Boolean.FALSE.toString());
sumLRF = h.getRequestFactory("", 0, 200, args);
assertQ(
@@ -220,18 +221,17 @@ public class TestComplexPhraseQParserPlugin extends SolrTestCaseJ4 {
"//lst[@name='1']/arr[@name='name']/str[.='<em>john</em> <em>smith</em> <em>smith</em> <em>john</em>']",
"//lst[@name='highlighting']/lst[@name='2']",
"//lst[@name='2']/arr[@name='name']/str[.='<em>johathon</em> <em>smith</em> <em>smith</em> <em>johathon</em>']");
-
- /*
- assertQ("Highlight Plain Prefix Query Test",
- sumLRF.makeRequest("name:jo*"),
- "//lst[@name='highlighting']/lst[@name='1']",
- "//lst[@name='1']/arr[@name='name']/str[.='<em>john</em> smith smith <em>john</em>']",
- "//lst[@name='highlighting']/lst[@name='2']",
- "//lst[@name='2']/arr[@name='name']/str[.='<em>johathon</em> smith smith <em>johathon</em>']",
- "//lst[@name='highlighting']/lst[@name='3']",
- "//lst[@name='3']/arr[@name='name']/str[.='<em>john</em> percival smith']"
- );
*/
+
+ assertQ(
+ "Highlight Plain Prefix Query Test",
+ sumLRF.makeRequest("name:jo*"),
+ "//lst[@name='highlighting']/lst[@name='1']",
+ "//lst[@name='1']/arr[@name='name']/str[.='<em>john</em> smith smith <em>john</em>']",
+ "//lst[@name='highlighting']/lst[@name='2']",
+ "//lst[@name='2']/arr[@name='name']/str[.='<em>johathon</em> smith smith <em>johathon</em>']",
+ "//lst[@name='highlighting']/lst[@name='3']",
+ "//lst[@name='3']/arr[@name='name']/str[.='<em>john</em> percival smith']");
}
@Test
diff --git a/solr/core/src/test/org/apache/solr/search/TestDocSet.java b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
index 273cadf986f..e4729c33a92 100644
--- a/solr/core/src/test/org/apache/solr/search/TestDocSet.java
+++ b/solr/core/src/test/org/apache/solr/search/TestDocSet.java
@@ -23,8 +23,10 @@ import java.util.Random;
import java.util.function.Supplier;
import java.util.function.ToIntFunction;
import org.apache.lucene.index.BinaryDocValues;
+import org.apache.lucene.index.ByteVectorValues;
import org.apache.lucene.index.FieldInfos;
import org.apache.lucene.index.Fields;
+import org.apache.lucene.index.FloatVectorValues;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReaderContext;
import org.apache.lucene.index.LeafMetaData;
@@ -37,8 +39,9 @@ import org.apache.lucene.index.SortedDocValues;
import org.apache.lucene.index.SortedNumericDocValues;
import org.apache.lucene.index.SortedSetDocValues;
import org.apache.lucene.index.StoredFieldVisitor;
+import org.apache.lucene.index.StoredFields;
+import org.apache.lucene.index.TermVectors;
import org.apache.lucene.index.Terms;
-import org.apache.lucene.index.VectorValues;
import org.apache.lucene.search.DocIdSet;
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.TopDocs;
@@ -304,6 +307,11 @@ public class TestDocSet extends SolrTestCase {
return null;
}
+ @Override
+ public TermVectors termVectors() {
+ return null;
+ }
+
@Override
public int numDocs() {
return maxDoc;
@@ -360,7 +368,17 @@ public class TestDocSet extends SolrTestCase {
}
@Override
- public VectorValues getVectorValues(String field) {
+ public FloatVectorValues getFloatVectorValues(String field) {
+ return null;
+ }
+
+ @Override
+ public ByteVectorValues getByteVectorValues(String field) {
+ return null;
+ }
+
+ @Override
+ public StoredFields storedFields() {
return null;
}
@@ -371,6 +389,12 @@ public class TestDocSet extends SolrTestCase {
return null;
}
+ @Override
+ public TopDocs searchNearestVectors(
+ String field, byte[] target, int k, Bits acceptDoc, int visitedLimits) {
+ return null;
+ }
+
@Override
protected void doClose() {}
diff --git a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java
index 11ae41b2985..86749dac8a8 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/AtomicUpdateProcessorFactoryTest.java
@@ -238,7 +238,7 @@ public class AtomicUpdateProcessorFactoryTest extends SolrTestCaseJ4 {
}
private UpdateRequestProcessor createRunUpdateProcessor(
- SolrQueryRequest req, SolrQueryResponse rsp) {
+ SolrQueryRequest req, SolrQueryResponse rsp) throws IOException {
return new RunUpdateProcessorFactory().getInstance(req, rsp, null);
}
diff --git a/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java b/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java
index fea4262d598..0ba7a4f96e2 100644
--- a/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java
+++ b/solr/core/src/test/org/apache/solr/update/processor/UpdateRequestProcessorFactoryTest.java
@@ -18,6 +18,7 @@ package org.apache.solr.update.processor;
import static org.apache.solr.update.processor.DistributingUpdateProcessorFactory.DISTRIB_UPDATE_PARAM;
+import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.ArrayList;
import java.util.Arrays;
@@ -85,7 +86,7 @@ public class UpdateRequestProcessorFactoryTest extends SolrTestCaseJ4 {
assertEquals("{name={n8=88, n9=99}}", link.args.toString());
}
- public void testUpdateDistribChainSkipping() {
+ public void testUpdateDistribChainSkipping() throws IOException {
// a key part of this test is verifying that LogUpdateProcessor is found in all chains because
// it is a @RunAlways processor -- but in order for that to work, we have to sanity check that
diff --git a/solr/licenses/antlr4-runtime-4.11.1.jar.sha1 b/solr/licenses/antlr4-runtime-4.11.1.jar.sha1
new file mode 100644
index 00000000000..73976600b73
--- /dev/null
+++ b/solr/licenses/antlr4-runtime-4.11.1.jar.sha1
@@ -0,0 +1 @@
+069214c1de1960040729702eb58deac8827135e7
diff --git a/solr/licenses/antlr4-runtime-4.5.1-1.jar.sha1 b/solr/licenses/antlr4-runtime-4.5.1-1.jar.sha1
deleted file mode 100644
index f15e50069ba..00000000000
--- a/solr/licenses/antlr4-runtime-4.5.1-1.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-66144204f9d6d7d3f3f775622c2dd7e9bd511d97
diff --git a/solr/licenses/lucene-analysis-common-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-common-9.4.2.jar.sha1
deleted file mode 100644
index 275136a6c55..00000000000
--- a/solr/licenses/lucene-analysis-common-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-fc0c95d5bdd0f604ffe165f6eb4db82621455ebe
diff --git a/solr/licenses/lucene-analysis-common-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-common-9.5.0.jar.sha1
new file mode 100644
index 00000000000..7b0a28badb7
--- /dev/null
+++ b/solr/licenses/lucene-analysis-common-9.5.0.jar.sha1
@@ -0,0 +1 @@
+f68660102455a466f98cac0501723bed7e7c6407
diff --git a/solr/licenses/lucene-analysis-icu-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-icu-9.4.2.jar.sha1
deleted file mode 100644
index 7870d457164..00000000000
--- a/solr/licenses/lucene-analysis-icu-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b0fb7442f6ddf9b8f8f806aa55d28ce03b4ba8ce
diff --git a/solr/licenses/lucene-analysis-icu-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-icu-9.5.0.jar.sha1
new file mode 100644
index 00000000000..70cb26d55f4
--- /dev/null
+++ b/solr/licenses/lucene-analysis-icu-9.5.0.jar.sha1
@@ -0,0 +1 @@
+11c816250e4ff106151fd8cb69e61ead4fb4a8dd
diff --git a/solr/licenses/lucene-analysis-kuromoji-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-kuromoji-9.4.2.jar.sha1
deleted file mode 100644
index b09d3d933fc..00000000000
--- a/solr/licenses/lucene-analysis-kuromoji-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5151fa1b681ad12444b6a1d76f480bce7c6f207f
diff --git a/solr/licenses/lucene-analysis-kuromoji-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-kuromoji-9.5.0.jar.sha1
new file mode 100644
index 00000000000..ba22a97c499
--- /dev/null
+++ b/solr/licenses/lucene-analysis-kuromoji-9.5.0.jar.sha1
@@ -0,0 +1 @@
+4555fc64ce9d63c6c1f4983e816526f896606e9f
diff --git a/solr/licenses/lucene-analysis-morfologik-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-morfologik-9.4.2.jar.sha1
deleted file mode 100644
index 23429e420db..00000000000
--- a/solr/licenses/lucene-analysis-morfologik-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-01bd18ed02ea704f6ef475b61266d319bc6d22e7
diff --git a/solr/licenses/lucene-analysis-morfologik-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-morfologik-9.5.0.jar.sha1
new file mode 100644
index 00000000000..c7a4b22e692
--- /dev/null
+++ b/solr/licenses/lucene-analysis-morfologik-9.5.0.jar.sha1
@@ -0,0 +1 @@
+cb00cd193e2f927e6357cf33e0880034571ea528
diff --git a/solr/licenses/lucene-analysis-nori-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-nori-9.4.2.jar.sha1
deleted file mode 100644
index 4a051ae313b..00000000000
--- a/solr/licenses/lucene-analysis-nori-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-b5fb67c14b61b7afb4b3ba147e03bcb323cba7f8
diff --git a/solr/licenses/lucene-analysis-nori-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-nori-9.5.0.jar.sha1
new file mode 100644
index 00000000000..b395212c48d
--- /dev/null
+++ b/solr/licenses/lucene-analysis-nori-9.5.0.jar.sha1
@@ -0,0 +1 @@
+2fd55607da8adf8234169d9f4120119c05a8175c
diff --git a/solr/licenses/lucene-analysis-opennlp-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-opennlp-9.4.2.jar.sha1
deleted file mode 100644
index bf5bd6ae81c..00000000000
--- a/solr/licenses/lucene-analysis-opennlp-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-59b878224557a0164517383cb16dda9c8505e305
diff --git a/solr/licenses/lucene-analysis-opennlp-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-opennlp-9.5.0.jar.sha1
new file mode 100644
index 00000000000..8b3468a7e21
--- /dev/null
+++ b/solr/licenses/lucene-analysis-opennlp-9.5.0.jar.sha1
@@ -0,0 +1 @@
+e38f969b07b18c60a968b2a722388cb672d6bea9
diff --git a/solr/licenses/lucene-analysis-phonetic-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-phonetic-9.4.2.jar.sha1
deleted file mode 100644
index b2c010a2c5e..00000000000
--- a/solr/licenses/lucene-analysis-phonetic-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-bfbf3ba09dea738c38bd2eb1b468a33973cb808e
diff --git a/solr/licenses/lucene-analysis-phonetic-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-phonetic-9.5.0.jar.sha1
new file mode 100644
index 00000000000..6f94a49f99a
--- /dev/null
+++ b/solr/licenses/lucene-analysis-phonetic-9.5.0.jar.sha1
@@ -0,0 +1 @@
+c97163035f1d46249505d15fbdc427b6ae03549a
diff --git a/solr/licenses/lucene-analysis-smartcn-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-smartcn-9.4.2.jar.sha1
deleted file mode 100644
index 6bc4c2964b6..00000000000
--- a/solr/licenses/lucene-analysis-smartcn-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-47a9098cd851ae7f013f50885f97051e62aa7781
diff --git a/solr/licenses/lucene-analysis-smartcn-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-smartcn-9.5.0.jar.sha1
new file mode 100644
index 00000000000..b8d529ed0e9
--- /dev/null
+++ b/solr/licenses/lucene-analysis-smartcn-9.5.0.jar.sha1
@@ -0,0 +1 @@
+a08ae3e2212837c98d5e1174cf1a293a5c8c0373
diff --git a/solr/licenses/lucene-analysis-stempel-9.4.2.jar.sha1 b/solr/licenses/lucene-analysis-stempel-9.4.2.jar.sha1
deleted file mode 100644
index 6e91b8b8d1f..00000000000
--- a/solr/licenses/lucene-analysis-stempel-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-913f692e5592f813e1013102e9e06a34fc0d987b
diff --git a/solr/licenses/lucene-analysis-stempel-9.5.0.jar.sha1 b/solr/licenses/lucene-analysis-stempel-9.5.0.jar.sha1
new file mode 100644
index 00000000000..7dd5cb89e2d
--- /dev/null
+++ b/solr/licenses/lucene-analysis-stempel-9.5.0.jar.sha1
@@ -0,0 +1 @@
+483906d2ebad0ff910d52382c2f027b511788b58
diff --git a/solr/licenses/lucene-backward-codecs-9.4.2.jar.sha1 b/solr/licenses/lucene-backward-codecs-9.4.2.jar.sha1
deleted file mode 100644
index 1041a229f07..00000000000
--- a/solr/licenses/lucene-backward-codecs-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-5f82b75c01bb134aadcf549e2b0295a1417d71b4
diff --git a/solr/licenses/lucene-backward-codecs-9.5.0.jar.sha1 b/solr/licenses/lucene-backward-codecs-9.5.0.jar.sha1
new file mode 100644
index 00000000000..f02f7fabc96
--- /dev/null
+++ b/solr/licenses/lucene-backward-codecs-9.5.0.jar.sha1
@@ -0,0 +1 @@
+66be22239d5058b0b8a8aeba03dc047a276efafa
diff --git a/solr/licenses/lucene-classification-9.4.2.jar.sha1 b/solr/licenses/lucene-classification-9.4.2.jar.sha1
deleted file mode 100644
index 08d7825e904..00000000000
--- a/solr/licenses/lucene-classification-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-de275ff6ed779f34368da823428386f179d3c337
diff --git a/solr/licenses/lucene-classification-9.5.0.jar.sha1 b/solr/licenses/lucene-classification-9.5.0.jar.sha1
new file mode 100644
index 00000000000..5e223998a57
--- /dev/null
+++ b/solr/licenses/lucene-classification-9.5.0.jar.sha1
@@ -0,0 +1 @@
+5143516c82e0a0243c95eb17b456ab2dbd5bd99e
diff --git a/solr/licenses/lucene-codecs-9.4.2.jar.sha1 b/solr/licenses/lucene-codecs-9.4.2.jar.sha1
deleted file mode 100644
index 11c6526f6bf..00000000000
--- a/solr/licenses/lucene-codecs-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-468de55c642677e52e898443c5bf8546c7274985
diff --git a/solr/licenses/lucene-codecs-9.5.0.jar.sha1 b/solr/licenses/lucene-codecs-9.5.0.jar.sha1
new file mode 100644
index 00000000000..234cbd161df
--- /dev/null
+++ b/solr/licenses/lucene-codecs-9.5.0.jar.sha1
@@ -0,0 +1 @@
+07daa241bd4a3fa4cc2e1c7810b9f8d631877adf
diff --git a/solr/licenses/lucene-core-9.4.2.jar.sha1 b/solr/licenses/lucene-core-9.4.2.jar.sha1
deleted file mode 100644
index 469e66d8b0b..00000000000
--- a/solr/licenses/lucene-core-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e9e7fe827e814839d8826d83cffdbd9d255150c4
diff --git a/solr/licenses/lucene-core-9.5.0.jar.sha1 b/solr/licenses/lucene-core-9.5.0.jar.sha1
new file mode 100644
index 00000000000..185470fb60a
--- /dev/null
+++ b/solr/licenses/lucene-core-9.5.0.jar.sha1
@@ -0,0 +1 @@
+bba4ba5d30e71a5f0017e45e8469db8cff8ad102
diff --git a/solr/licenses/lucene-expressions-9.4.2.jar.sha1 b/solr/licenses/lucene-expressions-9.4.2.jar.sha1
deleted file mode 100644
index 7631965e1dd..00000000000
--- a/solr/licenses/lucene-expressions-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-f433ede87302221b48703a890e5f5701cf1b021d
diff --git a/solr/licenses/lucene-expressions-9.5.0.jar.sha1 b/solr/licenses/lucene-expressions-9.5.0.jar.sha1
new file mode 100644
index 00000000000..f27ff319bf5
--- /dev/null
+++ b/solr/licenses/lucene-expressions-9.5.0.jar.sha1
@@ -0,0 +1 @@
+62f3d3630ecc14069d5c24b9693df5a2787f8202
diff --git a/solr/licenses/lucene-grouping-9.4.2.jar.sha1 b/solr/licenses/lucene-grouping-9.4.2.jar.sha1
deleted file mode 100644
index 23e68ebb352..00000000000
--- a/solr/licenses/lucene-grouping-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-2b8addf8bfe8515a2dcd5185cfe8dde493e98d2a
diff --git a/solr/licenses/lucene-grouping-9.5.0.jar.sha1 b/solr/licenses/lucene-grouping-9.5.0.jar.sha1
new file mode 100644
index 00000000000..6a7885000d9
--- /dev/null
+++ b/solr/licenses/lucene-grouping-9.5.0.jar.sha1
@@ -0,0 +1 @@
+b15fe0a55a82168c810d0447ec2e244d16d94f01
diff --git a/solr/licenses/lucene-highlighter-9.4.2.jar.sha1 b/solr/licenses/lucene-highlighter-9.4.2.jar.sha1
deleted file mode 100644
index 1525de500e6..00000000000
--- a/solr/licenses/lucene-highlighter-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-76eb0793f495045ef18b4324a47b94f50a1a163f
diff --git a/solr/licenses/lucene-highlighter-9.5.0.jar.sha1 b/solr/licenses/lucene-highlighter-9.5.0.jar.sha1
new file mode 100644
index 00000000000..7f7c0ad1f11
--- /dev/null
+++ b/solr/licenses/lucene-highlighter-9.5.0.jar.sha1
@@ -0,0 +1 @@
+8b5e3cea3370838bda1d730cf55176c24a763d2e
diff --git a/solr/licenses/lucene-join-9.4.2.jar.sha1 b/solr/licenses/lucene-join-9.4.2.jar.sha1
deleted file mode 100644
index 2670eae909b..00000000000
--- a/solr/licenses/lucene-join-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-18646fccd677af1ed8d56f3697aa693396d22704
diff --git a/solr/licenses/lucene-join-9.5.0.jar.sha1 b/solr/licenses/lucene-join-9.5.0.jar.sha1
new file mode 100644
index 00000000000..e23eeb7ca8b
--- /dev/null
+++ b/solr/licenses/lucene-join-9.5.0.jar.sha1
@@ -0,0 +1 @@
+85a4208614a5660297effce441883687b010073b
diff --git a/solr/licenses/lucene-memory-9.4.2.jar.sha1 b/solr/licenses/lucene-memory-9.4.2.jar.sha1
deleted file mode 100644
index 45e581f1972..00000000000
--- a/solr/licenses/lucene-memory-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-685522495dea97e493784aac1f414d218e3019df
diff --git a/solr/licenses/lucene-memory-9.5.0.jar.sha1 b/solr/licenses/lucene-memory-9.5.0.jar.sha1
new file mode 100644
index 00000000000..b55d14ad1e2
--- /dev/null
+++ b/solr/licenses/lucene-memory-9.5.0.jar.sha1
@@ -0,0 +1 @@
+d632e63d08837be715046c8ccb4fb804acd3d7e4
diff --git a/solr/licenses/lucene-misc-9.4.2.jar.sha1 b/solr/licenses/lucene-misc-9.4.2.jar.sha1
deleted file mode 100644
index c785c7ce8c0..00000000000
--- a/solr/licenses/lucene-misc-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-59f0ee89d9a06dd1c297d7d86981c39c87c51018
diff --git a/solr/licenses/lucene-misc-9.5.0.jar.sha1 b/solr/licenses/lucene-misc-9.5.0.jar.sha1
new file mode 100644
index 00000000000..ca449930409
--- /dev/null
+++ b/solr/licenses/lucene-misc-9.5.0.jar.sha1
@@ -0,0 +1 @@
+64773801b8ba8141f4256d22da598de40d6f3033
diff --git a/solr/licenses/lucene-queries-9.4.2.jar.sha1 b/solr/licenses/lucene-queries-9.4.2.jar.sha1
deleted file mode 100644
index 6b1617d6bd5..00000000000
--- a/solr/licenses/lucene-queries-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-d102a8c6cba1ff028a0127035565be005e78ef8e
diff --git a/solr/licenses/lucene-queries-9.5.0.jar.sha1 b/solr/licenses/lucene-queries-9.5.0.jar.sha1
new file mode 100644
index 00000000000..b62bb16e390
--- /dev/null
+++ b/solr/licenses/lucene-queries-9.5.0.jar.sha1
@@ -0,0 +1 @@
+ae7930fa0ea91198905d695a222ef7f09de1c2dd
diff --git a/solr/licenses/lucene-queryparser-9.4.2.jar.sha1 b/solr/licenses/lucene-queryparser-9.4.2.jar.sha1
deleted file mode 100644
index 4c8cec0edc2..00000000000
--- a/solr/licenses/lucene-queryparser-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-322aa2ca41f66c002b5d0ab1d21264d65ff5b9c5
diff --git a/solr/licenses/lucene-queryparser-9.5.0.jar.sha1 b/solr/licenses/lucene-queryparser-9.5.0.jar.sha1
new file mode 100644
index 00000000000..e26349bd605
--- /dev/null
+++ b/solr/licenses/lucene-queryparser-9.5.0.jar.sha1
@@ -0,0 +1 @@
+b3e3d9434bcfce242e242364c64eab0888d285e2
diff --git a/solr/licenses/lucene-sandbox-9.4.2.jar.sha1 b/solr/licenses/lucene-sandbox-9.4.2.jar.sha1
deleted file mode 100644
index 36c6d950646..00000000000
--- a/solr/licenses/lucene-sandbox-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-a45e07fd4b70f868115bab5de704181680be9f04
diff --git a/solr/licenses/lucene-sandbox-9.5.0.jar.sha1 b/solr/licenses/lucene-sandbox-9.5.0.jar.sha1
new file mode 100644
index 00000000000..c5966f8fadc
--- /dev/null
+++ b/solr/licenses/lucene-sandbox-9.5.0.jar.sha1
@@ -0,0 +1 @@
+408be287b0f421cf8afd655579a0cc65aba61b28
diff --git a/solr/licenses/lucene-spatial-extras-9.4.2.jar.sha1 b/solr/licenses/lucene-spatial-extras-9.4.2.jar.sha1
deleted file mode 100644
index a6bf174c996..00000000000
--- a/solr/licenses/lucene-spatial-extras-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-18bd925556054addda907bfd3334ab4b4cc9e258
diff --git a/solr/licenses/lucene-spatial-extras-9.5.0.jar.sha1 b/solr/licenses/lucene-spatial-extras-9.5.0.jar.sha1
new file mode 100644
index 00000000000..a63aae32e83
--- /dev/null
+++ b/solr/licenses/lucene-spatial-extras-9.5.0.jar.sha1
@@ -0,0 +1 @@
+4960c09365d20f024bf668f60d7c3b4e54f03750
diff --git a/solr/licenses/lucene-spatial3d-9.4.2.jar.sha1 b/solr/licenses/lucene-spatial3d-9.4.2.jar.sha1
deleted file mode 100644
index 86434e186dd..00000000000
--- a/solr/licenses/lucene-spatial3d-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-daf5b0ebc57270ab7be639c0cfac4ba388e2775c
diff --git a/solr/licenses/lucene-spatial3d-9.5.0.jar.sha1 b/solr/licenses/lucene-spatial3d-9.5.0.jar.sha1
new file mode 100644
index 00000000000..31ffb5638aa
--- /dev/null
+++ b/solr/licenses/lucene-spatial3d-9.5.0.jar.sha1
@@ -0,0 +1 @@
+01ed55dd384e654076b76d7083feee6ac3efe02b
diff --git a/solr/licenses/lucene-suggest-9.4.2.jar.sha1 b/solr/licenses/lucene-suggest-9.4.2.jar.sha1
deleted file mode 100644
index 9951eb761cc..00000000000
--- a/solr/licenses/lucene-suggest-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-e7749ec8f263a658104580a03d71bcb362370faf
diff --git a/solr/licenses/lucene-suggest-9.5.0.jar.sha1 b/solr/licenses/lucene-suggest-9.5.0.jar.sha1
new file mode 100644
index 00000000000..f575b77203f
--- /dev/null
+++ b/solr/licenses/lucene-suggest-9.5.0.jar.sha1
@@ -0,0 +1 @@
+195624eb3a09b3dc37cc5fa51ae2f7bd61553985
diff --git a/solr/licenses/lucene-test-framework-9.4.2.jar.sha1 b/solr/licenses/lucene-test-framework-9.4.2.jar.sha1
deleted file mode 100644
index a20bf3f9100..00000000000
--- a/solr/licenses/lucene-test-framework-9.4.2.jar.sha1
+++ /dev/null
@@ -1 +0,0 @@
-dad1e731a41a184fdfe60bc6d1d0fe48b363af5f
diff --git a/solr/licenses/lucene-test-framework-9.5.0.jar.sha1 b/solr/licenses/lucene-test-framework-9.5.0.jar.sha1
new file mode 100644
index 00000000000..b8ed75e1df3
--- /dev/null
+++ b/solr/licenses/lucene-test-framework-9.5.0.jar.sha1
@@ -0,0 +1 @@
+586787143ce485f477e01a58834d9c8af907faf1
diff --git a/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java b/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java
index 6b674646704..e2d6c77c50e 100644
--- a/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java
+++ b/solr/modules/analysis-extras/src/java/org/apache/solr/update/processor/OpenNLPExtractNamedEntitiesUpdateProcessorFactory.java
@@ -34,12 +34,13 @@ import java.util.regex.PatternSyntaxException;
import opennlp.tools.util.Span;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.TokenStream;
-import org.apache.lucene.analysis.opennlp.OpenNLPTokenizer;
+import org.apache.lucene.analysis.opennlp.SentenceAttributeExtractor;
import org.apache.lucene.analysis.opennlp.tools.NLPNERTaggerOp;
import org.apache.lucene.analysis.opennlp.tools.OpenNLPOpsFactory;
import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
-import org.apache.lucene.analysis.tokenattributes.FlagsAttribute;
import org.apache.lucene.analysis.tokenattributes.OffsetAttribute;
+import org.apache.lucene.analysis.tokenattributes.SentenceAttribute;
+import org.apache.lucene.util.AttributeSource;
import org.apache.solr.common.SolrException;
import org.apache.solr.common.SolrInputDocument;
import org.apache.solr.common.SolrInputField;
@@ -636,28 +637,23 @@ public class OpenNLPExtractNamedEntitiesUpdateProcessorFactory extends UpdateReq
List<Integer> endOffsets = new ArrayList<>();
String fullText = srcFieldValue.toString();
TokenStream tokenStream = analyzer.tokenStream("", fullText);
- CharTermAttribute termAtt = tokenStream.addAttribute(CharTermAttribute.class);
- OffsetAttribute offsetAtt = tokenStream.addAttribute(OffsetAttribute.class);
- FlagsAttribute flagsAtt = tokenStream.addAttribute(FlagsAttribute.class);
+ SentenceAttributeExtractor sentenceAttributeExtractor =
+ new SentenceAttributeExtractor(
+ tokenStream, tokenStream.addAttribute(SentenceAttribute.class));
tokenStream.reset();
synchronized (nerTaggerOp) {
- while (tokenStream.incrementToken()) {
- terms.add(termAtt.toString());
- startOffsets.add(offsetAtt.startOffset());
- endOffsets.add(offsetAtt.endOffset());
- boolean endOfSentence = 0 != (flagsAtt.getFlags() & OpenNLPTokenizer.EOS_FLAG_BIT);
- if (endOfSentence) { // extract named entities one sentence at a time
- extractEntitiesFromSentence(
- fullText, terms, startOffsets, endOffsets, entitiesWithType);
+ while (!sentenceAttributeExtractor.allSentencesProcessed()) {
+ for (AttributeSource attributeSource :
+ sentenceAttributeExtractor.extractSentenceAttributes()) {
+ terms.add(attributeSource.getAttribute(CharTermAttribute.class).toString());
+ startOffsets.add(attributeSource.getAttribute(OffsetAttribute.class).startOffset());
+ endOffsets.add(attributeSource.getAttribute(OffsetAttribute.class).endOffset());
}
- }
- tokenStream.end();
- tokenStream.close();
- if (!terms.isEmpty()) { // In case last token of last sentence isn't properly flagged with
- // EOS_FLAG_BIT
extractEntitiesFromSentence(
fullText, terms, startOffsets, endOffsets, entitiesWithType);
}
+ tokenStream.end();
+ tokenStream.close();
nerTaggerOp.reset(); // Forget all adaptive data collected during previous calls
}
return entitiesWithType;
diff --git a/solr/server/solr/configsets/_default/conf/solrconfig.xml b/solr/server/solr/configsets/_default/conf/solrconfig.xml
index ca69ee01e65..9eb29ab91e4 100644
--- a/solr/server/solr/configsets/_default/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/_default/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>9.4</luceneMatchVersion>
+ <luceneMatchVersion>9.5</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
diff --git a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
index 82b74f054ad..32ea98950da 100644
--- a/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
+++ b/solr/server/solr/configsets/sample_techproducts_configs/conf/solrconfig.xml
@@ -35,7 +35,7 @@
that you fully re-index after changing this setting as it can
affect both how text is indexed and queried.
-->
- <luceneMatchVersion>9.4</luceneMatchVersion>
+ <luceneMatchVersion>9.5</luceneMatchVersion>
<!-- <lib/> directives can be used to instruct Solr to load any Jars
identified and use them to resolve any "plugins" specified in
diff --git a/versions.lock b/versions.lock
index e977862d7d3..464f1a59ec8 100644
--- a/versions.lock
+++ b/versions.lock
@@ -165,7 +165,7 @@ net.sf.ehcache:ehcache-core:2.6.2 (1 constraints: 2706f94d)
net.sf.jopt-simple:jopt-simple:5.0.4 (1 constraints: be0ad6cc)
net.sourceforge.argparse4j:argparse4j:0.9.0 (1 constraints: 0b050636)
net.thisptr:jackson-jq:0.0.13 (1 constraints: 3605223b)
-org.antlr:antlr4-runtime:4.5.1-1 (1 constraints: 2810eea6)
+org.antlr:antlr4-runtime:4.11.1 (1 constraints: f70fbd96)
org.apache.calcite:calcite-core:1.34.0 (1 constraints: 3a053d3b)
org.apache.calcite:calcite-linq4j:1.34.0 (2 constraints: c912b74b)
org.apache.calcite.avatica:avatica-core:1.23.0 (3 constraints: fb20cdcb)
@@ -208,32 +208,32 @@ org.apache.logging.log4j:log4j-core:2.20.0 (5 constraints: 82556aef)
org.apache.logging.log4j:log4j-layout-template-json:2.20.0 (1 constraints: 3605333b)
org.apache.logging.log4j:log4j-slf4j2-impl:2.20.0 (1 constraints: 3605333b)
org.apache.logging.log4j:log4j-web:2.20.0 (1 constraints: 3605333b)
-org.apache.lucene:lucene-analysis-common:9.4.2 (10 constraints: e89eec62)
-org.apache.lucene:lucene-analysis-icu:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-kuromoji:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-morfologik:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-nori:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-opennlp:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-phonetic:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-smartcn:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-analysis-stempel:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-backward-codecs:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-classification:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-codecs:9.4.2 (3 constraints: a5259244)
-org.apache.lucene:lucene-core:9.4.2 (26 constraints: 2f90a69c)
-org.apache.lucene:lucene-expressions:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-grouping:9.4.2 (2 constraints: e81552e4)
-org.apache.lucene:lucene-highlighter:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-join:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-memory:9.4.2 (1 constraints: 9b0fad83)
-org.apache.lucene:lucene-misc:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-queries:9.4.2 (6 constraints: c051d07b)
-org.apache.lucene:lucene-queryparser:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-sandbox:9.4.2 (2 constraints: df142ba1)
-org.apache.lucene:lucene-spatial-extras:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-spatial3d:9.4.2 (1 constraints: be10b5b9)
-org.apache.lucene:lucene-suggest:9.4.2 (1 constraints: 11052636)
-org.apache.lucene:lucene-test-framework:9.4.2 (1 constraints: 11052636)
+org.apache.lucene:lucene-analysis-common:9.5.0 (10 constraints: de9e7c5a)
+org.apache.lucene:lucene-analysis-icu:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-kuromoji:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-morfologik:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-nori:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-opennlp:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-phonetic:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-smartcn:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-analysis-stempel:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-backward-codecs:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-classification:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-codecs:9.5.0 (3 constraints: a2250844)
+org.apache.lucene:lucene-core:9.5.0 (26 constraints: 1590c164)
+org.apache.lucene:lucene-expressions:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-grouping:9.5.0 (2 constraints: e61524e4)
+org.apache.lucene:lucene-highlighter:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-join:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-memory:9.5.0 (1 constraints: 9a0fae83)
+org.apache.lucene:lucene-misc:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-queries:9.5.0 (6 constraints: ba514a79)
+org.apache.lucene:lucene-queryparser:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-sandbox:9.5.0 (2 constraints: dd1400a1)
+org.apache.lucene:lucene-spatial-extras:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-spatial3d:9.5.0 (1 constraints: bd10b6b9)
+org.apache.lucene:lucene-suggest:9.5.0 (1 constraints: 10052736)
+org.apache.lucene:lucene-test-framework:9.5.0 (1 constraints: 10052736)
org.apache.opennlp:opennlp-tools:1.9.4 (2 constraints: f91d5c6d)
org.apache.pdfbox:fontbox:2.0.26 (1 constraints: 180b72d8)
org.apache.pdfbox:jbig2-imageio:3.0.4 (1 constraints: 5e0cef01)
diff --git a/versions.props b/versions.props
index cd1692ef3b6..8a691dbec1c 100644
--- a/versions.props
+++ b/versions.props
@@ -49,7 +49,7 @@ org.apache.httpcomponents:httpcore=4.4.16
org.apache.httpcomponents:httpmime=4.5.14
org.apache.kerby:*=1.0.1
org.apache.logging.log4j:*=2.20.0
-org.apache.lucene:*=9.4.2
+org.apache.lucene:*=9.5.0
org.apache.tika:*=1.28.5
org.apache.tomcat:annotations-api=6.0.53
org.apache.zookeeper:*=3.8.1