The Lucene PMC is pleased to announce the release of Apache Lucene 9.7.0. Apache Lucene is a high-performance, full-featured search engine library written entirely in Java. It is a technology suitable for nearly any application that requires structured search, full-text search, faceting, nearest-neighbor search across high-dimensionality vectors, spell correction or query suggestions.
This release contains numerous bug fixes, optimizations, and improvements, some of which are highlighted below. The release is available for immediate download at: <https://lucene.apache.org/core/downloads.html> ### Lucene 9.7.0 Release Highlights: #### New features * The new IndexWriter#updateDocuments(Query, Iterable) allows updating multiple documents that match a query at the same time. * Function queries can now compute similarity scores between kNN vectors. #### Optimizations * KNN indexing and querying can now take advantage of vectorization for distance computation between vectors. To enable this, use exactly Java 20 or 21, and pass --add-modules jdk.incubator.vector as a command-line parameter to the Java program. * KNN queries now run concurrently if the IndexSearcher has been created with an executor. * Queries sorted by field are now able to dynamically prune hits only using the after value. This yields major speedups when paginating deeply. * Reduced merge-time overhead of computing the number of soft deletes. #### Changes in runtime behavior * KNN vectors are now disallowed to have non-finite values such as NaN or ±Infinity. #### Bug fixes * Backward reading is no longer an adversarial case for BufferedIndexInput, used by NIOFSDirectory and SimpleFSDirectory. This addresses a performance bug when performing terms dictionary lookups with either of these directories. * GraphTokenStreamFiniteStrings#articulationPointsRecurse may no longer overflow the stack. * ... plus a number of helpful bug fixes! Please read CHANGES.txt for a full list of new features and changes: <https://lucene.apache.org/core/9_7_0/changes/Changes.html> -- Adrien