|
10 | 10 | import redis.commands.search.aggregation as aggregations
|
11 | 11 | import redis.commands.search.reducers as reducers
|
12 | 12 | from redis.commands.search.field import TextField, NumericField, TagField
|
13 |
| -from redis.commands.search.indexDefinition import IndexDefinition, IndexType |
| 13 | +from redis.commands.search.index_definition import IndexDefinition, IndexType |
14 | 14 | from redis.commands.search.query import Query
|
15 | 15 | import redis.exceptions
|
16 | 16 | # STEP_END
|
|
25 | 25 | except redis.exceptions.ResponseError:
|
26 | 26 | pass
|
27 | 27 |
|
28 |
| -r.delete("user:1", "user:2", "user:3") |
| 28 | +try: |
| 29 | + r.ft("hash-idx:users").dropindex(True) |
| 30 | +except redis.exceptions.ResponseError: |
| 31 | + pass |
| 32 | + |
| 33 | +r.delete("user:1", "user:2", "user:3", "huser:1", "huser:2", "huser:3") |
29 | 34 | # REMOVE_END
|
30 | 35 | # STEP_START create_data
|
31 | 36 | user1 = {
|
|
134 | 139 | )
|
135 | 140 | # REMOVE_END
|
136 | 141 |
|
| 142 | +# STEP_START make_hash_index |
| 143 | +hashSchema = ( |
| 144 | + TextField("name"), |
| 145 | + TagField("city"), |
| 146 | + NumericField("age") |
| 147 | +) |
| 148 | + |
| 149 | +hashIndexCreated = r.ft("hash-idx:users").create_index( |
| 150 | + hashSchema, |
| 151 | + definition=IndexDefinition( |
| 152 | + prefix=["huser:"], index_type=IndexType.HASH |
| 153 | + ) |
| 154 | +) |
| 155 | +# STEP_END |
| 156 | +# REMOVE_START |
| 157 | +assert hashIndexCreated |
| 158 | +# REMOVE_END |
| 159 | + |
| 160 | +# STEP_START add_hash_data |
| 161 | +huser1Set = r.hset("huser:1", mapping=user1) |
| 162 | +huser2Set = r.hset("huser:2", mapping=user2) |
| 163 | +huser3Set = r.hset("huser:3", mapping=user3) |
| 164 | +# STEP_END |
| 165 | +# REMOVE_START |
| 166 | +assert huser1Set |
| 167 | +assert huser2Set |
| 168 | +assert huser3Set |
| 169 | +# REMOVE_END |
| 170 | + |
| 171 | +# STEP_START query1_hash |
| 172 | +findPaulHashResult = r.ft("hash-idx:users").search( |
| 173 | + Query("Paul @age:[30 40]") |
| 174 | +) |
| 175 | + |
| 176 | +print(findPaulHashResult) |
| 177 | +# >>> Result{1 total, docs: [Document {'id': 'huser:3', |
| 178 | +# >>> 'payload': None, 'name': 'Paul Zamir', ... |
| 179 | +# STEP_END |
| 180 | +# REMOVE_START |
| 181 | +assert str(findPaulHashResult) == ( |
| 182 | + "Result{1 total, docs: [Document " + |
| 183 | + "{'id': 'huser:3', 'payload': None, 'name': 'Paul Zamir', " + |
| 184 | + "'email': '[email protected]', 'age': '35', 'city': 'Tel Aviv'}]}" |
| 185 | +) |
| 186 | +# REMOVE_END |
| 187 | + |
137 | 188 | r.close()
|
0 commit comments