diff --git a/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java b/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java index 6f2c6e6c768..a7fff198bbf 100644 --- a/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java +++ b/vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/elasticsearch/ElasticsearchVectorStore.java @@ -176,11 +176,6 @@ protected ElasticsearchVectorStore(Builder builder) { @Override public void doAdd(List documents) { - // For the index to be present, either it must be pre-created or set the - // initializeSchema to true. - if (!indexExists()) { - throw new IllegalArgumentException("Index not found"); - } BulkRequest.Builder bulkRequestBuilder = new BulkRequest.Builder(); List embeddings = this.embeddingModel.embed(documents, EmbeddingOptionsBuilder.builder().build(), @@ -214,11 +209,6 @@ private Object getDocument(Document document, float[] embedding, String embeddin @Override public void doDelete(List idList) { BulkRequest.Builder bulkRequestBuilder = new BulkRequest.Builder(); - // For the index to be present, either it must be pre-created or set the - // initializeSchema to true. - if (!indexExists()) { - throw new IllegalArgumentException("Index not found"); - } for (String id : idList) { bulkRequestBuilder.operations(op -> op.delete(idx -> idx.index(this.options.getIndexName()).id(id))); } @@ -229,12 +219,6 @@ public void doDelete(List idList) { @Override public void doDelete(Filter.Expression filterExpression) { - // For the index to be present, either it must be pre-created or set the - // initializeSchema to true. - if (!indexExists()) { - throw new IllegalArgumentException("Index not found"); - } - try { this.elasticsearchClient.deleteByQuery(d -> d.index(this.options.getIndexName()) .query(q -> q.queryString(qs -> qs.query(getElasticsearchQueryString(filterExpression))))); @@ -349,12 +333,15 @@ private DenseVectorSimilarity parseSimilarity(String similarity) { @Override public void afterPropertiesSet() { - if (!this.initializeSchema) { + // For the index to be present, either it must be pre-created or set the + // initializeSchema to true. + if (indexExists()) { return; } - if (!indexExists()) { - createIndexMapping(); + if (!this.initializeSchema) { + throw new IllegalArgumentException("Index not found"); } + createIndexMapping(); } @Override