public static void singleVectorSearchWithEmbedding()

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"));
        }
    }