3
3
package io .redis .examples ;
4
4
5
5
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 ;
7
8
// REMOVE_END
8
9
// STEP_START import
9
10
import redis .clients .jedis .UnifiedJedis ;
13
14
import redis .clients .jedis .search .aggr .*;
14
15
import redis .clients .jedis .search .schemafields .*;
15
16
import org .json .JSONObject ;
16
- import java .util .List ;
17
17
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 ;
20
21
// STEP_END
21
22
22
23
// HIDE_START
@@ -32,7 +33,8 @@ public void run() {
32
33
//REMOVE_START
33
34
// Clear the indexes and keys here before using them in tests.
34
35
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" );
36
38
//REMOVE_END
37
39
38
40
// STEP_START create_data
@@ -135,10 +137,8 @@ public void run() {
135
137
System .out .println (aggResult .getTotalResults ()); // >>> 2
136
138
137
139
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" ));
142
142
}
143
143
// >>> London - 1
144
144
// >>> Tel Aviv - 2
@@ -151,6 +151,78 @@ public void run() {
151
151
.sorted ().toArray ());
152
152
// REMOVE_END
153
153
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
+
154
226
// HIDE_START
155
227
jedis .close ();
156
228
}
0 commit comments