mirror of
https://github.com/tencentmusic/supersonic.git
synced 2025-12-10 11:07:06 +00:00
(improvement) (chat) optimize the number and order of similar metrics (#341)
Co-authored-by: jolunoluo
This commit is contained in:
@@ -42,13 +42,13 @@ public class SimilarMetricExecuteResponder implements ExecuteResponder {
|
|||||||
.filterCondition(filterCondition).queryEmbeddings(null).build();
|
.filterCondition(filterCondition).queryEmbeddings(null).build();
|
||||||
EmbeddingUtils embeddingUtils = ContextUtils.getBean(EmbeddingUtils.class);
|
EmbeddingUtils embeddingUtils = ContextUtils.getBean(EmbeddingUtils.class);
|
||||||
List<RetrieveQueryResult> retrieveQueryResults = embeddingUtils.retrieveQuery(
|
List<RetrieveQueryResult> retrieveQueryResults = embeddingUtils.retrieveQuery(
|
||||||
MetaEmbeddingListener.COLLECTION_NAME, retrieveQuery, METRIC_RECOMMEND_SIZE);
|
MetaEmbeddingListener.COLLECTION_NAME, retrieveQuery, METRIC_RECOMMEND_SIZE + 1);
|
||||||
if (CollectionUtils.isEmpty(retrieveQueryResults)) {
|
if (CollectionUtils.isEmpty(retrieveQueryResults)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<Retrieval> retrievals = retrieveQueryResults.stream()
|
List<Retrieval> retrievals = retrieveQueryResults.stream()
|
||||||
.flatMap(retrieveQueryResult -> retrieveQueryResult.getRetrieval().stream())
|
.flatMap(retrieveQueryResult -> retrieveQueryResult.getRetrieval().stream())
|
||||||
.sorted(Comparator.comparingDouble(Retrieval::getDistance).reversed())
|
.sorted(Comparator.comparingDouble(Retrieval::getDistance))
|
||||||
.distinct().collect(Collectors.toList());
|
.distinct().collect(Collectors.toList());
|
||||||
Set<Long> metricIds = parseInfo.getMetrics().stream().map(SchemaElement::getId).collect(Collectors.toSet());
|
Set<Long> metricIds = parseInfo.getMetrics().stream().map(SchemaElement::getId).collect(Collectors.toSet());
|
||||||
int metricOrder = 0;
|
int metricOrder = 0;
|
||||||
@@ -62,7 +62,7 @@ public class SimilarMetricExecuteResponder implements ExecuteResponder {
|
|||||||
if (retrieval.getMetadata().containsKey("modelId")) {
|
if (retrieval.getMetadata().containsKey("modelId")) {
|
||||||
schemaElement.setModel(Long.parseLong(retrieval.getMetadata().get("modelId")));
|
schemaElement.setModel(Long.parseLong(retrieval.getMetadata().get("modelId")));
|
||||||
}
|
}
|
||||||
schemaElement.setOrder(metricOrder++);
|
schemaElement.setOrder(++metricOrder);
|
||||||
parseInfo.getMetrics().add(schemaElement);
|
parseInfo.getMetrics().add(schemaElement);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user