Skip to content

Commit 34474d7

Browse files
DOC-5110 added hash search examples (#4151)
* DOC-5110 added hash search examples * Java 8 compatibility --------- Co-authored-by: ggivo <[email protected]>
1 parent 38bd33f commit 34474d7

File tree

1 file changed

+81
-9
lines changed

1 file changed

+81
-9
lines changed

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

+81-9
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
package io.redis.examples;
44

55
import org.junit.jupiter.api.Test;
6-
6+
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
7+
import static org.junit.jupiter.api.Assertions.assertEquals;
78
// REMOVE_END
89
// STEP_START import
910
import redis.clients.jedis.UnifiedJedis;
@@ -13,10 +14,10 @@
1314
import redis.clients.jedis.search.aggr.*;
1415
import redis.clients.jedis.search.schemafields.*;
1516
import org.json.JSONObject;
16-
import java.util.List;
1717

18-
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
19-
import static org.junit.jupiter.api.Assertions.assertEquals;
18+
import java.util.HashMap;
19+
import java.util.List;
20+
import java.util.Map;
2021
// STEP_END
2122

2223
// HIDE_START
@@ -32,7 +33,8 @@ public void run() {
3233
//REMOVE_START
3334
// Clear the indexes and keys here before using them in tests.
3435
try {jedis.ftDropIndex("idx:users");} catch (JedisDataException j){}
35-
jedis.del("bike", "bike:1", "crashes", "newbike", "riders", "bikes:inventory");
36+
try {jedis.ftDropIndex("hash-idx:users");} catch (JedisDataException j){}
37+
jedis.del("user:1", "user:2", "user:3", "huser:1", "huser:2", "huser:3");
3638
//REMOVE_END
3739

3840
// STEP_START create_data
@@ -135,10 +137,8 @@ public void run() {
135137
System.out.println(aggResult.getTotalResults()); // >>> 2
136138

137139
for (Row cityRow: aggResult.getRows()) {
138-
System.out.println(String.format(
139-
"%s - %d",
140-
cityRow.getString("city"), cityRow.getLong("count"))
141-
);
140+
System.out.printf("%s - %d%n",
141+
cityRow.getString("city"), cityRow.getLong("count"));
142142
}
143143
// >>> London - 1
144144
// >>> Tel Aviv - 2
@@ -151,6 +151,78 @@ public void run() {
151151
.sorted().toArray());
152152
// REMOVE_END
153153

154+
// STEP_START make_hash_index
155+
SchemaField[] hashSchema = {
156+
TextField.of("name"),
157+
TextField.of("city"),
158+
NumericField.of("age")
159+
};
160+
161+
String hashCreateResult = jedis.ftCreate("hash-idx:users",
162+
FTCreateParams.createParams()
163+
.on(IndexDataType.HASH)
164+
.addPrefix("huser:"),
165+
hashSchema
166+
);
167+
168+
System.out.println(hashCreateResult); // >>> OK
169+
// STEP_END
170+
// REMOVE_START
171+
assertEquals("OK", hashCreateResult);
172+
// REMOVE_END
173+
174+
// STEP_START add_hash_data
175+
Map<String, String> user1Info = new HashMap<>();
176+
user1Info.put("name", "Paul John");
177+
user1Info.put("email", "[email protected]");
178+
user1Info.put("age", "42");
179+
user1Info.put("city", "London");
180+
long huser1Set = jedis.hset("huser:1", user1Info);
181+
182+
System.out.println(huser1Set); // >>> 4
183+
184+
Map<String, String> user2Info = new HashMap<>();
185+
user2Info.put("name", "Eden Zamir");
186+
user2Info.put("email", "[email protected]");
187+
user2Info.put("age", "29");
188+
user2Info.put("city", "Tel Aviv");
189+
long huser2Set = jedis.hset("huser:2", user2Info);
190+
191+
System.out.println(huser2Set); // >>> 4
192+
193+
Map<String, String> user3Info = new HashMap<>();
194+
user3Info.put("name", "Paul Zamir");
195+
user3Info.put("email", "[email protected]");
196+
user3Info.put("age", "35");
197+
user3Info.put("city", "Tel Aviv");
198+
long huser3Set = jedis.hset("huser:3", user3Info);
199+
200+
System.out.println(huser3Set); // >>> 4
201+
// STEP_END
202+
// REMOVE_START
203+
assertEquals(4, huser1Set);
204+
assertEquals(4, huser2Set);
205+
assertEquals(4, huser3Set);
206+
// REMOVE_END
207+
208+
// STEP_START query1_hash
209+
SearchResult findPaulHashResult = jedis.ftSearch("hash-idx:users",
210+
"Paul @age:[30 40]"
211+
);
212+
213+
System.out.println(findPaulHashResult.getTotalResults()); // >>> 1
214+
215+
List<Document> paulHashDocs = findPaulHashResult.getDocuments();
216+
217+
for (Document doc: paulHashDocs) {
218+
System.out.println(doc.getId());
219+
}
220+
// >>> user:3
221+
// STEP_END
222+
// REMOVE_START
223+
assertEquals("huser:3", paulHashDocs.get(0).getId());
224+
// REMOVE_END
225+
154226
// HIDE_START
155227
jedis.close();
156228
}

0 commit comments

Comments
 (0)