in demo-java/demo-vectors/src/main/java/azure/search/sample/Main.java [213:244]
public static void singleVectorSearchWithEmbedding(SearchClient searchClient, OpenAIClient openAIClient, String query, String azureOpenAIEmbeddingDeployment) {
EmbeddingsOptions embeddingsOptions = new EmbeddingsOptions(Arrays.asList(query))
.setUser(USER);
Embeddings embeddings = openAIClient.getEmbeddings(azureOpenAIEmbeddingDeployment, embeddingsOptions);
List<Float> embedding = embeddings
.getData()
.get(0)
.getEmbedding()
.stream()
.map(Double::floatValue)
.collect(Collectors.toList());
// Example of using vector search without using a search query or any filters.
VectorQuery vectorizableQuery = new VectorizedQuery(embedding)
.setKNearestNeighborsCount(3)
// Set the fields to compare the vector against. This is a comma-delimited list of field names.
.setFields("contentVector");
SearchPagedIterable searchResults = searchClient.search(null, new SearchOptions()
.setVectorSearchOptions(new VectorSearchOptions().setQueries(vectorizableQuery))
.setTop(3),
Context.NONE);
System.out.println("===================================");
System.out.println("Single Vector Search from Embedding Results:");
System.out.println("===================================");
for (SearchResult searchResult : searchResults) {
SearchDocument doc = searchResult.getDocument(SearchDocument.class);
System.out.printf("Score: %f, Title: %s: Content: %s%n", searchResult.getScore(), doc.get("title"), doc.get("content"));
}
}