Skip to content

Commit debe8d9

Browse files
committed
Added support for ADDSCORES argument in FT.AGGREGATE (#3908)
(cherry picked from commit 7b121c4)
1 parent e52b83b commit debe8d9

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

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

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);

src/test/java/redis/clients/jedis/modules/search/AggregationTest.java

+17
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,23 @@ public void testAggregationBuilderVerbatim() {
192192
assertEquals(0, res.getTotalResults());
193193
}
194194

195+
@Test
196+
public void testAggregationBuilderAddScores() {
197+
Schema sc = new Schema();
198+
sc.addSortableTextField("name", 1.0);
199+
sc.addSortableNumericField("age");
200+
client.ftCreate(index, IndexOptions.defaultOptions(), sc);
201+
addDocument(new Document("data1").set("name", "Adam").set("age", 33));
202+
addDocument(new Document("data2").set("name", "Sara").set("age", 44));
203+
204+
AggregationBuilder r = new AggregationBuilder("sara").addScores()
205+
.apply("@__score * 100", "normalized_score").dialect(3);
206+
207+
AggregationResult res = client.ftAggregate(index, r);
208+
assertEquals(2, res.getRow(0).getLong("__score"));
209+
assertEquals(200, res.getRow(0).getLong("normalized_score"));
210+
}
211+
195212
@Test
196213
public void testAggregationBuilderTimeout() {
197214
Schema sc = new Schema();

0 commit comments

Comments
 (0)