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