chore(search): Add __vector_score alias (#3186)

This commit is contained in:
Vladislav 2024-06-17 23:39:38 +03:00 committed by GitHub
parent 6e0e3cb350
commit 6291c04016
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 2 deletions

View file

@ -319,7 +319,7 @@ struct BasicSearch {
// Skip sorting again for KNN queries, reverse if needed will be applied on aggregation
if (auto knn = get_if<AstKnnNode>(&node.filter->Variant());
knn && knn->score_alias == node.field) {
knn && (knn->score_alias == node.field || "__vector_score" == node.field)) {
return sub_results;
}

View file

@ -455,8 +455,14 @@ TEST_F(SearchFamilyTest, TestReturn) {
resp = Run({"ft.search", "i1", "@justA:0", "return", "1", "nothere"});
EXPECT_THAT(resp, MatchEntry("k0", "nothere", ""));
// Checl implcit __vector_score is provided
float score = 20;
resp = Run({"ft.search", "i1", "@justA:0 => [KNN 20 @vector $vector]", "SORTBY", "__vector_score",
"DESC", "RETURN", "1", "longA", "PARAMS", "2", "vector", floatsv(&score)});
EXPECT_THAT(resp, MatchEntry("k0", "longA", "0"));
// Check sort doesn't shadow knn return alias
const float score = 20;
score = 20;
resp = Run({"ft.search", "i1", "@justA:0 => [KNN 20 @vector $vector AS vec_return]", "SORTBY",
"vec_return", "DESC", "RETURN", "1", "vec_return", "PARAMS", "2", "vector",
floatsv(&score)});