Fixed - RSearch.search() method doesn't execute query with aliases properly. #5529

pull/5564/head
Nikita Koksharov 1 year ago
parent dd373b7f55
commit 5062dca6e8

@ -379,13 +379,18 @@ public class RedissonSearch implements RSearch {
if (!options.getReturnAttributes().isEmpty()) {
args.add("RETURN");
args.add(options.getReturnAttributes().size());
int pos = args.size() - 1;
int amount = 0;
for (ReturnAttribute attr : options.getReturnAttributes()) {
args.add(attr.getIdentifier());
amount++;
if (attr.getProperty() != null) {
args.add("AS");
args.add(attr.getProperty());
amount += 2;
}
}
args.set(pos, amount);
}
if (options.getSummarize() != null) {
args.add("SUMMARIZE");

@ -313,7 +313,9 @@ public class RedissonSearchTest extends DockerRedisStackTest {
.distance(VectorDistParam.DistanceMetric.COSINE),
FieldIndex.text("$.content").as("content"));
SearchResult r = s.search("text_index", "*", QueryOptions.defaults());
SearchResult r = s.search("text_index", "*", QueryOptions.defaults()
.returnAttributes(new ReturnAttribute("vector", "vector11"),
new ReturnAttribute("vector2", "vector22")));
assertThat(r.getTotal()).isEqualTo(1);
}

Loading…
Cancel
Save