33package io .redis .examples ;
44
55import 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
910import redis .clients .jedis .UnifiedJedis ;
1314import redis .clients .jedis .search .aggr .*;
1415import redis .clients .jedis .search .schemafields .*;
1516import 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