All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning. See the CONTRIBUTING guide for instructions on how to add changelog entries.
- Add Support for Multi Values in innerHit for Nested k-NN Fields in Lucene and FAISS (#2283)[#2283]
- Add binary index support for Lucene engine. (#2292)[#2292]
- Add expand_nested_docs Parameter support to NMSLIB engine (#2331)[#2331]
- Add a new build mode,
FAISS_OPT_LEVEL=avx512_spr
, which enables the use of advanced AVX-512 instructions introduced with Intel(R) Sapphire Rapids (#2404)[#2404] - Add cosine similarity support for faiss engine (#2376)[#2376]
- Introduced a writing layer in native engines where relies on the writing interface to process IO. (#2241)[#2241]
- Allow method parameter override for training based indices (#2290) https://github.com/opensearch-project/k-NN/pull/2290]
- Optimizes lucene query execution to prevent unnecessary rewrites (#2305)[#2305]
- Add check to directly use ANN Search when filters match all docs. (#2320)[#2320]
- Use one formula to calculate cosine similarity (#2357)[#2357]
- Add WithFieldName implementation to KNNQueryBuilder (#2398)[#2398]
- Make the build work for M series MacOS without manual code changes and local JAVA_HOME config (#2397)[#2397]
- Remove DocsWithFieldSet reference from NativeEngineFieldVectorsWriter (#2408)[#2408]
- Fixing the bug when a segment has no vector field present for disk based vector search (#2282)[#2282]
- Fixing the bug where search fails with "fields" parameter for an index with a knn_vector field (#2314)[#2314]
- Fix for NPE while merging segments after all the vector fields docs are deleted (#2365)[#2365]
- Allow validation for non knn index only after 2.17.0 (#2315)[#2315]
- Fixing the bug to prevent updating the index.knn setting after index creation(#2348)[#2348]
- Release query vector memory after execution (#2346)[#2346]
- Fix shard level rescoring disabled setting flag (#2352)[#2352]
- Fix filter rewrite logic which was resulting in getting inconsistent / incorrect results for cases where filter was getting rewritten for shards (#2359)[#2359]
- Fixing it to retrieve space_type from index setting when both method and top level don't have the value. #2374
- Fixing the bug where setting rescore as false for on_disk knn_vector query is a no-op (#2399)[#2399]
- Fixing bug where mapping accepts both dimension and model-id (#2410)[#2410]
- Updated C++ version in JNI from c++11 to c++17 #2259
- Upgrade bytebuddy and objenesis version to match OpenSearch core and, update github ci runner for macos #2279
- Select index settings based on cluster version2236
- Added periodic cache maintenance for QuantizationStateCache and NativeMemoryCache #2308
- Added null checks for fieldInfo in ExactSearcher to avoid NPE while running exact search for segments with no vector field (#2278)[#2278]
- Added Lucene BWC tests (#2313)[#2313]
- Upgrade jsonpath from 2.8.0 to 2.9.02325
- Bump Faiss commit from 1f42e81 to 0cbc2a8 to accelerate hamming distance calculation using _mm512_popcnt_epi64 intrinsic and also add avx512-fp16 instructions to boost performance #2381
- Enabled indices.breaker.total.use_real_memory setting via build.gradle for integTest Cluster to catch heap CB in local ITs and github CI actions #2395