Skip to content

Commit d22df4b

Browse files
authored
Improve QueryRangeExample and QueryGeoExample (#3970)
* Improve QueryRangeExample - Do not rely on random order of unsorted search results - Print prices for clarity * Fix assertion in QueryGeoExample
1 parent 251831c commit d22df4b

File tree

2 files changed

+59
-49
lines changed

2 files changed

+59
-49
lines changed

src/test/java/io/redis/examples/QueryGeoExample.java

+11-11
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@
77
// REMOVE_END
88
// HIDE_START
99
import java.util.List;
10+
import java.util.stream.Stream;
11+
1012
import redis.clients.jedis.UnifiedJedis;
1113
import redis.clients.jedis.search.*;
1214
import redis.clients.jedis.search.schemafields.*;
@@ -223,8 +225,8 @@ public void run() {
223225

224226
List<Document> docs1 = res1.getDocuments();
225227

226-
for (int i = 0; i < docs1.size(); i++) {
227-
System.out.println(docs1.get(i).getId());
228+
for (Document document : docs1) {
229+
System.out.println(document.getId());
228230
}
229231
// >>> bicycle:5
230232
// STEP_END
@@ -247,8 +249,8 @@ public void run() {
247249

248250
List<Document> docs2 = res2.getDocuments();
249251

250-
for (int i = 0; i < docs2.size(); i++) {
251-
System.out.println(docs2.get(i).getId());
252+
for (Document document : docs2) {
253+
System.out.println(document.getId());
252254
}
253255
// >>> bicycle:5
254256
// STEP_END
@@ -271,8 +273,8 @@ public void run() {
271273

272274
List<Document> docs3 = res3.getDocuments();
273275

274-
for (int i = 0; i < docs3.size(); i++) {
275-
System.out.println(docs3.get(i).getId());
276+
for (Document document : docs3) {
277+
System.out.println(document.getId());
276278
}
277279
// >>> bicycle:5
278280
// >>> bicycle:6
@@ -284,11 +286,9 @@ public void run() {
284286
// Tests for 'geo3' step.
285287
// REMOVE_START
286288
Assert.assertEquals(5, res3.getTotalResults());
287-
Assert.assertEquals("bicycle:5", docs3.get(0).getId());
288-
Assert.assertEquals("bicycle:6", docs3.get(1).getId());
289-
Assert.assertEquals("bicycle:7", docs3.get(2).getId());
290-
Assert.assertEquals("bicycle:8", docs3.get(3).getId());
291-
Assert.assertEquals("bicycle:9", docs3.get(4).getId());
289+
Assert.assertArrayEquals(
290+
Stream.of("bicycle:5", "bicycle:6", "bicycle:7", "bicycle:8", "bicycle:9").sorted()
291+
.toArray(), docs3.stream().map(Document::getId).sorted().toArray());
292292
// REMOVE_END
293293

294294
// HIDE_START

src/test/java/io/redis/examples/QueryRangeExample.java

+48-38
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
// REMOVE_END
99
// HIDE_START
1010
import java.util.List;
11+
// REMOVE_START
12+
import java.util.stream.Stream;
13+
// REMOVE_END
14+
1115
import redis.clients.jedis.UnifiedJedis;
1216
import redis.clients.jedis.search.*;
1317
import redis.clients.jedis.search.schemafields.*;
@@ -212,105 +216,111 @@ public void run() {
212216

213217

214218
// STEP_START range1
215-
SearchResult res1 = jedis.ftSearch("idx:bicycle", "@price:[500 1000]");
219+
SearchResult res1 = jedis.ftSearch(
220+
"idx:bicycle", "@price:[500 1000]",
221+
FTSearchParams.searchParams().returnFields("price"));
216222
System.out.println(res1.getTotalResults()); // >>> 3
217223

218224
List<Document> docs1 = res1.getDocuments();
219225

220-
for (int i = 0; i < docs1.size(); i++) {
221-
System.out.println(docs1.get(i).getId());
226+
for (Document document : docs1) {
227+
System.out.println(document.getId() + " : price " + document.getString("price"));
222228
}
223-
// >>> bicycle:2
224-
// >>> bicycle:5
225-
// >>> bicycle:9
229+
// >>> bicycle:2 : price 815
230+
// >>> bicycle:5 : price 810
231+
// >>> bicycle:9 : price 815
226232
// STEP_END
227233

228234
// Tests for 'range1' step.
229235
// REMOVE_START
230236
Assert.assertEquals(3, res1.getTotalResults());
231-
Assert.assertEquals("bicycle:2", docs1.get(0).getId());
232-
Assert.assertEquals("bicycle:5", docs1.get(1).getId());
233-
Assert.assertEquals("bicycle:9", docs1.get(2).getId());
237+
Assert.assertArrayEquals(
238+
Stream.of("bicycle:5", "bicycle:9", "bicycle:2").sorted().toArray(),
239+
docs1.stream().map(Document::getId).sorted().toArray()
240+
);
234241
// REMOVE_END
235242

236243

237244
// STEP_START range2
238245
SearchResult res2 = jedis.ftSearch("idx:bicycle",
239246
"*",
240247
FTSearchParams.searchParams()
241-
.filter("price", 500, 1000)
248+
.returnFields("price")
249+
.filter("price", 500, 1000)
242250
);
243251
System.out.println(res2.getTotalResults()); // >>> 3
244252

245253
List<Document> docs2 = res2.getDocuments();
246254

247-
for (int i = 0; i < docs2.size(); i++) {
248-
System.out.println(docs2.get(i).getId());
255+
for (Document document : docs2) {
256+
System.out.println(document.getId() + " : price " + document.getString("price"));
249257
}
250-
// >>> bicycle:2
251-
// >>> bicycle:5
252-
// >>> bicycle:9
258+
// >>> bicycle:2 : price 815
259+
// >>> bicycle:5 : price 810
260+
// >>> bicycle:9 : price 815
253261
// STEP_END
254262

255263
// Tests for 'range2' step.
256264
// REMOVE_START
257265
Assert.assertEquals(3, res2.getTotalResults());
258-
Assert.assertEquals("bicycle:2", docs2.get(0).getId());
259-
Assert.assertEquals("bicycle:5", docs2.get(1).getId());
260-
Assert.assertEquals("bicycle:9", docs2.get(2).getId());
266+
Assert.assertArrayEquals(
267+
Stream.of("bicycle:5", "bicycle:9", "bicycle:2").sorted().toArray(),
268+
docs2.stream().map(Document::getId).sorted().toArray()
269+
);
261270
// REMOVE_END
262271

263272

264273
// STEP_START range3
265274
SearchResult res3 = jedis.ftSearch("idx:bicycle",
266275
"*",
267276
FTSearchParams.searchParams()
268-
.filter("price", 1000, true, Double.POSITIVE_INFINITY, false)
277+
.returnFields("price")
278+
.filter("price", 1000, true, Double.POSITIVE_INFINITY, false)
269279
);
270280
System.out.println(res3.getTotalResults()); // >>> 5
271281

272282
List<Document> docs3 = res3.getDocuments();
273283

274-
for (int i = 0; i < docs3.size(); i++) {
275-
System.out.println(docs3.get(i).getId());
284+
for (Document document : docs3) {
285+
System.out.println(document.getId() + " : price " + document.getString("price"));
276286
}
277-
// >>> bicycle:1
278-
// >>> bicycle:4
279-
// >>> bicycle:6
280-
// >>> bicycle:3
281-
// >>> bicycle:8
287+
// >>> bicycle:1 : price 1200
288+
// >>> bicycle:4 : price 3200
289+
// >>> bicycle:6 : price 2300
290+
// >>> bicycle:3 : price 3400
291+
// >>> bicycle:8 : price 1200
282292
// STEP_END
283293

284294
// Tests for 'range3' step.
285295
// REMOVE_START
286296
Assert.assertEquals(5, res3.getTotalResults());
287-
Assert.assertEquals("bicycle:1", docs3.get(0).getId());
288-
Assert.assertEquals("bicycle:4", docs3.get(1).getId());
289-
Assert.assertEquals("bicycle:6", docs3.get(2).getId());
290-
Assert.assertEquals("bicycle:3", docs3.get(3).getId());
291-
Assert.assertEquals("bicycle:8", docs3.get(4).getId());
297+
Assert.assertArrayEquals(
298+
Stream.of("bicycle:1", "bicycle:4", "bicycle:6", "bicycle:3", "bicycle:8").sorted()
299+
.toArray(),
300+
docs3.stream().map(Document::getId).sorted().toArray());
292301
// REMOVE_END
293302

294303

295304
// STEP_START range4
296305
SearchResult res4 = jedis.ftSearch("idx:bicycle",
297306
"@price:[-inf 2000]",
298307
FTSearchParams.searchParams()
308+
.returnFields("price")
299309
.sortBy("price", SortingOrder.ASC)
300310
.limit(0, 5)
301311
);
302312
System.out.println(res4.getTotalResults()); // >>> 7
303313

304314
List<Document> docs4 = res4.getDocuments();
305315

306-
for (int i = 0; i < docs4.size(); i++) {
307-
System.out.println(docs4.get(i).getId());
316+
for (Document document : docs4) {
317+
System.out.println(document.getId() + " : price " + document.getString("price"));
308318
}
309-
// >>> bicycle:0
310-
// >>> bicycle:7
311-
// >>> bicycle:5
312-
// >>> bicycle:2
313-
// >>> bicycle:9
319+
// >>> bicycle:0 : price 270
320+
// >>> bicycle:7 : price 430
321+
// >>> bicycle:5 : price 810
322+
// >>> bicycle:2 : price 815
323+
// >>> bicycle:9 : price 815
314324
// STEP_END
315325

316326
// Tests for 'range4' step.

0 commit comments

Comments
 (0)