Skip to content

Commit fe12aae

Browse files
committed
dependency version, docs
1 parent ea47f84 commit fe12aae

File tree

6 files changed

+23
-12
lines changed

6 files changed

+23
-12
lines changed

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@
145145
<pgvector.version>0.1.4</pgvector.version>
146146
<sap.hanadb.version>2.20.11</sap.hanadb.version>
147147
<postgresql.version>42.7.2</postgresql.version>
148+
<elasticsearch-java.version>8.13.3</elasticsearch-java.version>
148149
<milvus.version>2.3.4</milvus.version>
149150
<pinecone.version>0.8.0</pinecone.version>
150151
<fastjson.version>2.0.46</fastjson.version>

spring-ai-docs/src/main/antora/modules/ROOT/pages/api/vectordbs/elasticsearch.adoc

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,17 @@ Properties starting with the `spring.ai.vectorstore.elasticsearch.*` prefix are
126126

127127
|`spring.ai.vectorstore.elasticsearch.index-name` | The name of the index to store the vectors. | spring-ai-document-index
128128
|`spring.ai.vectorstore.elasticsearch.dimensions` | The number of dimensions in the vector. | 1536
129-
|`spring.ai.vectorstore.elasticsearch.dense-vector-indexing` | Whether to use dense vector indexing. | true
130129
|`spring.ai.vectorstore.elasticsearch.similarity` | The similarity function to use. | `cosine`
131130
|===
132131

132+
The following similarity functions are available:
133+
134+
* cosine
135+
* l2_norm
136+
* dot_product
137+
138+
More details about each in the https://www.elastic.co/guide/en/elasticsearch/reference/master/dense-vector.html#dense-vector-params[Elasticsearch Documentation] on dense vectors.
139+
133140
== Metadata Filtering
134141

135142
You can leverage the generic, portable xref:api/vectordbs.adoc#metadata-filters[metadata filters] with Elasticsearch as well.
@@ -205,10 +212,11 @@ Read the link:https://www.elastic.co/guide/en/elasticsearch/client/java-api-clie
205212
----
206213
@Bean
207214
public RestClient restClient() {
208-
RestClientBuilder builder = RestClient.builder(new HttpHost("<host>", 9200, "http"));
209-
Header[] defaultHeaders = new Header[] { new BasicHeader("Authorization", "Basic <encoded username and password>") };
210-
builder.setDefaultHeaders(defaultHeaders);
211-
return builder.build();
215+
RestClient.builder(new HttpHost("<host>", 9200, "http"))
216+
.setDefaultHeaders(new Header[]{
217+
new BasicHeader("Authorization", "Basic <encoded username and password>")
218+
})
219+
.build();
212220
}
213221
----
214222

spring-ai-spring-boot-autoconfigure/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,13 +260,20 @@
260260
<optional>true</optional>
261261
</dependency>
262262

263+
<!-- Elasticsearch Vector Store-->
263264
<dependency>
264265
<groupId>org.springframework.ai</groupId>
265266
<artifactId>spring-ai-elasticsearch-store</artifactId>
266267
<version>${project.parent.version}</version>
267268
<optional>true</optional>
268269
</dependency>
269270

271+
<dependency>
272+
<groupId>co.elastic.clients</groupId>
273+
<artifactId>elasticsearch-java</artifactId>
274+
<version>${elasticsearch-java.version}</version>
275+
</dependency>
276+
270277
<!-- test dependencies -->
271278

272279
<dependency>

spring-ai-spring-boot-autoconfigure/src/main/java/org/springframework/ai/autoconfigure/vectorstore/elasticsearch/ElasticsearchVectorStoreAutoConfiguration.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
package org.springframework.ai.autoconfigure.vectorstore.elasticsearch;
1717

1818
import org.elasticsearch.client.RestClient;
19-
2019
import org.springframework.ai.embedding.EmbeddingClient;
2120
import org.springframework.ai.vectorstore.ElasticsearchVectorStore;
2221
import org.springframework.ai.vectorstore.ElasticsearchVectorStoreOptions;
@@ -28,8 +27,6 @@
2827
import org.springframework.context.annotation.Bean;
2928
import org.springframework.util.StringUtils;
3029

31-
import java.util.Objects;
32-
3330
/**
3431
* @author Eddú Meléndez
3532
* @author Wei Jiang

vector-stores/spring-ai-elasticsearch-store/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<dependency>
3636
<groupId>co.elastic.clients</groupId>
3737
<artifactId>elasticsearch-java</artifactId>
38-
<version>8.13.2</version>
38+
<version>${elasticsearch-java.version}</version>
3939
</dependency>
4040

4141
<!-- TESTING -->

vector-stores/spring-ai-elasticsearch-store/src/main/java/org/springframework/ai/vectorstore/ElasticsearchVectorStore.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@
1616
package org.springframework.ai.vectorstore;
1717

1818
import co.elastic.clients.elasticsearch.ElasticsearchClient;
19-
import co.elastic.clients.elasticsearch._types.mapping.DenseVectorProperty;
20-
import co.elastic.clients.elasticsearch._types.mapping.Property;
2119
import co.elastic.clients.elasticsearch.core.BulkRequest;
2220
import co.elastic.clients.elasticsearch.core.BulkResponse;
2321
import co.elastic.clients.elasticsearch.core.SearchResponse;
@@ -140,7 +138,7 @@ public List<Document> similaritySearch(SearchRequest searchRequest) {
140138
sr -> sr.index(options.getIndexName())
141139
.knn(knn -> knn.queryVector(vectors)
142140
.similarity(finalThreshold)
143-
.k(searchRequest.getTopK())
141+
.k((long) searchRequest.getTopK())
144142
.field("embedding")
145143
.numCandidates((long) (1.5 * searchRequest.getTopK()))
146144
.filter(fl -> fl.queryString(

0 commit comments

Comments
 (0)