Add support for reloading the SPI for KnnVectorsFormat class (#13394)

Signed-off-by: Navneet Verma <navneev@amazon.com>
This commit is contained in:
Navneet Verma 2024-05-27 09:56:05 -07:00 committed by GitHub
parent 80304802a5
commit 6efce2189e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 0 deletions

View File

@ -413,6 +413,8 @@ Other
* GITHUB#13077: Add public getter for SynonymQuery#field (Andrey Bozhko) * GITHUB#13077: Add public getter for SynonymQuery#field (Andrey Bozhko)
* GITHUB#13393: Add support for reloading the SPI for KnnVectorsFormat class (Navneet Verma)
======================== Lucene 9.10.0 ======================= ======================== Lucene 9.10.0 =======================
API Changes API Changes

View File

@ -68,6 +68,19 @@ public abstract class KnnVectorsFormat implements NamedSPILoader.NamedSPI {
return name; return name;
} }
/**
* Reloads the KnnVectorsFormat list from the given {@link ClassLoader}.
*
* <p><b>NOTE:</b> Only new KnnVectorsFormat are added, existing ones are never removed or
* replaced.
*
* <p><em>This method is expensive and should only be called for discovery of new KnnVectorsFormat
* on the given classpath/classloader!</em>
*/
public static void reloadKnnVectorsFormat(ClassLoader classloader) {
Holder.getLoader().reload(classloader);
}
/** looks up a format by name */ /** looks up a format by name */
public static KnnVectorsFormat forName(String name) { public static KnnVectorsFormat forName(String name) {
return Holder.getLoader().lookup(name); return Holder.getLoader().lookup(name);