@@ -1903,6 +1903,65 @@ class CaseConfigInput(BaseModel):
19031903 isDisplayed = lambda config : (config .get (CaseConfigParamType .engine_name , "" ).lower () == "faiss" ),
19041904)
19051905
1906+ CaseConfigParamInput_ON_DISK_OSSOpensearch = CaseConfigInput (
1907+ label = CaseConfigParamType .on_disk ,
1908+ displayLabel = "Disk-based Search" ,
1909+ inputHelp = "Enable disk-based storage with Binary Quantization" ,
1910+ inputType = InputType .Bool ,
1911+ inputConfig = {
1912+ "value" : False ,
1913+ },
1914+ )
1915+
1916+ CaseConfigParamInput_COMPRESSION_LEVEL_OSSOpensearch = CaseConfigInput (
1917+ label = CaseConfigParamType .compression_level ,
1918+ displayLabel = "Compression Level" ,
1919+ inputHelp = "Binary quantization compression ratio for disk storage" ,
1920+ inputType = InputType .Option ,
1921+ inputConfig = {
1922+ "options" : ["32x" , "16x" , "8x" , "4x" , "2x" , "1x" ],
1923+ "default" : "32x" ,
1924+ },
1925+ isDisplayed = lambda config : config .get (CaseConfigParamType .on_disk , False ) == True ,
1926+ )
1927+
1928+ CaseConfigParamInput_OVERSAMPLE_FACTOR_OSSOpensearch = CaseConfigInput (
1929+ label = CaseConfigParamType .oversample_factor ,
1930+ displayLabel = "Oversample Factor" ,
1931+ inputHelp = "Rescoring oversample factor for two-phase search" ,
1932+ inputType = InputType .Float ,
1933+ inputConfig = {
1934+ "min" : 1.0 ,
1935+ "max" : 10.0 ,
1936+ "value" : 3.0 ,
1937+ "step" : 0.5 ,
1938+ },
1939+ isDisplayed = lambda config : config .get (CaseConfigParamType .on_disk , False ) == True ,
1940+ )
1941+
1942+ CaseConfigParamInput_ENGINE_NAME_OSSOpensearch = CaseConfigInput (
1943+ label = CaseConfigParamType .engine_name ,
1944+ displayLabel = "Engine" ,
1945+ inputHelp = "HNSW algorithm implementation to use" ,
1946+ inputType = InputType .Option ,
1947+ inputConfig = {
1948+ "options" : ["faiss" , "lucene" ],
1949+ "default" : "faiss" ,
1950+ },
1951+ isDisplayed = lambda config : config .get (CaseConfigParamType .on_disk , False ) == False ,
1952+ )
1953+
1954+ CaseConfigParamInput_QUANTIZATION_TYPE_OSSOpensearch = CaseConfigInput (
1955+ label = CaseConfigParamType .quantizationType ,
1956+ displayLabel = "Quantization Type" ,
1957+ inputHelp = "Scalar quantization type for in-memory vectors" ,
1958+ inputType = InputType .Option ,
1959+ inputConfig = {
1960+ "options" : ["fp32" , "fp16" ],
1961+ "default" : "fp32" ,
1962+ },
1963+ isDisplayed = lambda config : config .get (CaseConfigParamType .on_disk , False ) == False ,
1964+ )
19061965MilvusLoadConfig = [
19071966 CaseConfigParamInput_IndexType ,
19081967 CaseConfigParamInput_M ,
@@ -2356,6 +2415,54 @@ class CaseConfigInput(BaseModel):
23562415 CaseConfigParamInput_INDEX_THREAD_QTY_DURING_FORCE_MERGE_AWSOpensearch ,
23572416]
23582417
2418+
2419+ OSSOpensearchLoadingConfig = [
2420+ # Storage Mode (Most Important - OSS Specific)
2421+ CaseConfigParamInput_ON_DISK_OSSOpensearch ,
2422+ CaseConfigParamInput_COMPRESSION_LEVEL_OSSOpensearch ,
2423+ # Core Algorithm Settings (Reuse AWS, except Engine and Quantization which need conditional display)
2424+ CaseConfigParamInput_ENGINE_NAME_OSSOpensearch ,
2425+ CaseConfigParamInput_METRIC_TYPE_NAME_AWSOpensearch ,
2426+ CaseConfigParamInput_M_AWSOpensearch ,
2427+ CaseConfigParamInput_EFConstruction_AWSOpensearch ,
2428+ # Quantization (In-Memory Only - OSS Specific for conditional display)
2429+ CaseConfigParamInput_QUANTIZATION_TYPE_OSSOpensearch ,
2430+ # Cluster/Indexing Settings (Reuse AWS)
2431+ CaseConfigParamInput_NUMBER_OF_SHARDS_AWSOpensearch ,
2432+ CaseConfigParamInput_NUMBER_OF_REPLICAS_AWSOpensearch ,
2433+ CaseConfigParamInput_REFRESH_INTERVAL_AWSOpensearch ,
2434+ CaseConfigParamInput_NUMBER_OF_INDEXING_CLIENTS_AWSOpensearch ,
2435+ CaseConfigParamInput_INDEX_THREAD_QTY_AWSOpensearch ,
2436+ CaseConfigParamInput_REPLICATION_TYPE_AWSOpensearch ,
2437+ CaseConfigParamInput_KNN_DERIVED_SOURCE_ENABLED_AWSOpensearch ,
2438+ CaseConfigParamInput_MEMORY_OPTIMIZED_SEARCH_AWSOpensearch ,
2439+ ]
2440+
2441+ OSSOpenSearchPerformanceConfig = [
2442+ # Storage Mode (Most Important - OSS Specific)
2443+ CaseConfigParamInput_ON_DISK_OSSOpensearch ,
2444+ CaseConfigParamInput_COMPRESSION_LEVEL_OSSOpensearch ,
2445+ CaseConfigParamInput_OVERSAMPLE_FACTOR_OSSOpensearch ,
2446+ # Search Parameters (Reuse AWS)
2447+ CaseConfigParamInput_EF_SEARCH_AWSOpensearch ,
2448+ # Core Algorithm Settings (Reuse AWS, except Engine and Quantization which need conditional display)
2449+ CaseConfigParamInput_ENGINE_NAME_OSSOpensearch ,
2450+ CaseConfigParamInput_METRIC_TYPE_NAME_AWSOpensearch ,
2451+ CaseConfigParamInput_M_AWSOpensearch ,
2452+ CaseConfigParamInput_EFConstruction_AWSOpensearch ,
2453+ # Quantization (In-Memory Only - OSS Specific for conditional display)
2454+ CaseConfigParamInput_QUANTIZATION_TYPE_OSSOpensearch ,
2455+ # Cluster Settings (Reuse AWS)
2456+ CaseConfigParamInput_NUMBER_OF_SHARDS_AWSOpensearch ,
2457+ CaseConfigParamInput_NUMBER_OF_REPLICAS_AWSOpensearch ,
2458+ CaseConfigParamInput_REFRESH_INTERVAL_AWSOpensearch ,
2459+ CaseConfigParamInput_NUMBER_OF_INDEXING_CLIENTS_AWSOpensearch ,
2460+ CaseConfigParamInput_INDEX_THREAD_QTY_AWSOpensearch ,
2461+ CaseConfigParamInput_REPLICATION_TYPE_AWSOpensearch ,
2462+ CaseConfigParamInput_KNN_DERIVED_SOURCE_ENABLED_AWSOpensearch ,
2463+ CaseConfigParamInput_MEMORY_OPTIMIZED_SEARCH_AWSOpensearch ,
2464+ ]
2465+
23592466# Map DB to config
23602467CASE_CONFIG_MAP = {
23612468 DB .Milvus : {
@@ -2379,8 +2486,8 @@ class CaseConfigInput(BaseModel):
23792486 CaseLabel .Performance : AWSOpenSearchPerformanceConfig ,
23802487 },
23812488 DB .OSSOpenSearch : {
2382- CaseLabel .Load : AWSOpensearchLoadingConfig ,
2383- CaseLabel .Performance : AWSOpenSearchPerformanceConfig ,
2489+ CaseLabel .Load : OSSOpensearchLoadingConfig ,
2490+ CaseLabel .Performance : OSSOpenSearchPerformanceConfig ,
23842491 },
23852492 DB .PgVector : {
23862493 CaseLabel .Load : PgVectorLoadingConfig ,
0 commit comments