public List doSimilaritySearch()

in java/spring-ai/src/main/java/com/aliyun/openservices/tablestore/agent/spring/TablestoreVectorStore.java [60:85]


    public List<Document> doSimilaritySearch(SearchRequest request) {
        Assert.notNull(request, "The search request must not be null.");
        String queryText = request.getQuery();
        float[] queryEmbed = embeddingModel.embed(queryText);
        int topK = request.getTopK();
        double similarityThreshold = request.getSimilarityThreshold();
        Set<String> tenantIds = new HashSet<>();
        var metadataFilter = TablestoreExpressionConverter.convertOperand(request.getFilterExpression(), tenantIds, knowledgeStore.enableMultiTenant());
        Map<String, Object> varArgs = new HashMap<>();
        varArgs.put(KnowledgeStoreImpl.FLAG_SKIP_WRAP_TENANT_IDS, true);
        Response<DocumentHit> hitResponse = knowledgeStore.vectorSearch(
            queryEmbed,
            topK,
            (float) similarityThreshold,
            tenantIds,
            metadataFilter,
            null,
            varArgs
        );
        List<DocumentHit> hits = hitResponse.getHits();
        List<Document> documents = new ArrayList<>(hits.size());
        for (DocumentHit hit : hits) {
            documents.add(Utils.toSpringAIDocument(hit));
        }
        return documents;
    }