fix opensearch delete_index (#4295)

This commit is contained in:
tstadel 2023-03-01 08:40:38 +01:00 committed by GitHub
parent 2a1d73e16d
commit d1c9407a25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 4 deletions

View File

@ -745,10 +745,11 @@ class OpenSearchDocumentStore(SearchEngineDocumentStore):
:return: None
"""
# Check if index uses an IVF model and delete it
index_mapping = self.client.indices.get(index)[index]["mappings"]["properties"]
if self.embedding_field in index_mapping and "model_id" in index_mapping[self.embedding_field]:
model_id = index_mapping[self.embedding_field]["model_id"]
self.client.transport.perform_request("DELETE", f"/_plugins/_knn/models/{model_id}")
if self._index_exists(index):
index_mapping = self.client.indices.get(index)[index]["mappings"]["properties"]
if self.embedding_field in index_mapping and "model_id" in index_mapping[self.embedding_field]:
model_id = index_mapping[self.embedding_field]["model_id"]
self.client.transport.perform_request("DELETE", f"/_plugins/_knn/models/{model_id}")
super().delete_index(index)

View File

@ -478,6 +478,10 @@ class DocumentStoreBaseTestAbstract:
with pytest.raises(Exception):
ds.get_document_count(index="custom_index")
@pytest.mark.integration
def test_delete_index_does_not_raise_if_not_exists(self, ds):
ds.delete_index(index="unknown_index")
@pytest.mark.integration
def test_update_meta(self, ds, documents):
ds.write_documents(documents)