@@ -107,6 +107,64 @@ def test_schema_vector_config_persistence(
107107
108108 collection_name = f"schema_spann_{ uuid4 ().hex } "
109109
110+ schema = Schema ()
111+ schema .create_index (
112+ config = VectorIndexConfig (
113+ space = "cosine" ,
114+ spann = SpannIndexConfig (
115+ search_nprobe = 16 ,
116+ write_nprobe = 32 ,
117+ ef_construction = 120 ,
118+ max_neighbors = 24 ,
119+ ),
120+ )
121+ )
122+
123+ collection = client .get_or_create_collection (
124+ name = collection_name ,
125+ schema = schema ,
126+ )
127+
128+ persisted_schema = collection .schema
129+ assert persisted_schema is not None
130+
131+ print (persisted_schema .serialize_to_json ())
132+
133+ embedding_override = persisted_schema .keys ["#embedding" ].float_list
134+ assert embedding_override is not None
135+ vector_index = embedding_override .vector_index
136+ assert vector_index is not None
137+ assert vector_index .enabled is True
138+ assert vector_index .config is not None
139+ assert vector_index .config .space is not None
140+ assert vector_index .config .space == "cosine"
141+
142+ client_reloaded = client_factories .create_client_from_system ()
143+ reloaded_collection = client_reloaded .get_collection (
144+ name = collection_name ,
145+ )
146+
147+ reloaded_schema = reloaded_collection .schema
148+ assert reloaded_schema is not None
149+ reloaded_embedding_override = reloaded_schema .keys ["#embedding" ].float_list
150+ assert reloaded_embedding_override is not None
151+ reloaded_vector_index = reloaded_embedding_override .vector_index
152+ assert reloaded_vector_index is not None
153+ assert reloaded_vector_index .config is not None
154+ assert reloaded_vector_index .config .space is not None
155+ assert reloaded_vector_index .config .space == "cosine"
156+
157+
158+ def test_schema_vector_config_persistence_with_ef (
159+ client_factories : "ClientFactories" ,
160+ ) -> None :
161+ """Ensure schema-provided SPANN settings persist across client restarts."""
162+
163+ client = client_factories .create_client_from_system ()
164+ client .reset ()
165+
166+ collection_name = f"schema_spann_{ uuid4 ().hex } "
167+
110168 schema = Schema ()
111169 embedding_function = SimpleEmbeddingFunction (dim = 6 )
112170 schema .create_index (
0 commit comments