in java/core/src/main/java/com/aliyun/openservices/tablestore/agent/knowledge/KnowledgeStoreImpl.java [405:431]
public Response<DocumentHit> vectorSearch(
float[] queryVector,
int topK,
Float minScore,
Set<String> tenantIds,
Filter metadataFilter,
List<String> columnsToGet,
Map<String, Object> varArgs
) {
Filter filter;
if (varArgs != null && varArgs.containsKey(FLAG_SKIP_WRAP_TENANT_IDS)) {
filter = metadataFilter;
} else {
filter = wrapTenantIds(tenantIds, metadataFilter);
}
VectorQuery vectorQuery = Filters.vectorQuery(embeddingField, queryVector).setTopK(topK).setFilter(filter).setMinScore(minScore);
KnowledgeSearchRequest knowledgeSearchRequest = KnowledgeSearchRequest.builder()
.tenantIds(null)
.metadataFilter(vectorQuery)
.limit(topK)
.nextToken(null)
.columnsToGet(columnsToGet)
.sorts(Collections.singletonList(ScoreSort.builder().order(Order.DESC).build()))
.varArg(FLAG_ROUTING_VALUES, buildRouting(tenantIds))
.build();
return searchDocuments(knowledgeSearchRequest);
}