Skip to content

Commit 7b121c4

Browse files
authored
Added support for ADDSCORES argument in FT.AGGREGATE (#3908)
1 parent 0b04243 commit 7b121c4

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

Diff for: src/main/java/redis/clients/jedis/search/SearchProtocol.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public enum SearchKeyword implements Rawable {
5656
LANGUAGE_FIELD, SCORE, SCORE_FIELD, SCORER, PARAMS, AS, DIALECT, SLOP, TIMEOUT, INORDER,
5757
EXPANDER, MAXTEXTFIELDS, SKIPINITIALSCAN, WITHSUFFIXTRIE, NOSTEM, NOINDEX, PHONETIC, WEIGHT,
5858
CASESENSITIVE, LOAD, APPLY, GROUPBY, MAXIDLE, WITHCURSOR, DISTANCE, TERMS, INCLUDE, EXCLUDE,
59-
SEARCH, AGGREGATE, QUERY, LIMITED, COUNT, REDUCE, INDEXMISSING, INDEXEMPTY;
59+
SEARCH, AGGREGATE, QUERY, LIMITED, COUNT, REDUCE, INDEXMISSING, INDEXEMPTY, ADDSCORES;
6060

6161
private final byte[] raw;
6262

Diff for: src/main/java/redis/clients/jedis/search/aggr/AggregationBuilder.java

+5
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,11 @@ public AggregationBuilder timeout(long timeout) {
170170
return this;
171171
}
172172

173+
public AggregationBuilder addScores() {
174+
aggrArgs.add(SearchKeyword.ADDSCORES);
175+
return this;
176+
}
177+
173178
public AggregationBuilder params(Map<String, Object> params) {
174179
aggrArgs.add(SearchKeyword.PARAMS);
175180
aggrArgs.add(params.size() << 1);

Diff for: src/test/java/redis/clients/jedis/modules/search/AggregationTest.java

+17
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,23 @@ public void testAggregationBuilderVerbatim() {
200200
assertEquals(0, res.getTotalResults());
201201
}
202202

203+
@Test
204+
public void testAggregationBuilderAddScores() {
205+
Schema sc = new Schema();
206+
sc.addSortableTextField("name", 1.0);
207+
sc.addSortableNumericField("age");
208+
client.ftCreate(index, IndexOptions.defaultOptions(), sc);
209+
addDocument(new Document("data1").set("name", "Adam").set("age", 33));
210+
addDocument(new Document("data2").set("name", "Sara").set("age", 44));
211+
212+
AggregationBuilder r = new AggregationBuilder("sara").addScores()
213+
.apply("@__score * 100", "normalized_score").dialect(3);
214+
215+
AggregationResult res = client.ftAggregate(index, r);
216+
assertEquals(2, res.getRow(0).getLong("__score"));
217+
assertEquals(200, res.getRow(0).getLong("normalized_score"));
218+
}
219+
203220
@Test
204221
public void testAggregationBuilderTimeout() {
205222
Schema sc = new Schema();

0 commit comments

Comments
 (0)