Spaces:
Sleeping
Sleeping
File size: 1,289 Bytes
4eaf3da |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
from redis import Redis
from redis.commands.search.field import VectorField
from redis.commands.search.field import TextField
from redis.commands.search.field import TagField
from redis.commands.search.result import Result
import numpy as np
def load_vectors(client:Redis, product_metadata, vector_dict):
p = client.pipeline(transaction=False)
for index in product_metadata.keys():
#hash key
key='product:'+ str(index)+ ':' + product_metadata[index]['primary_key']
#hash values
item_metadata = product_metadata[index]
item_keywords_vector = np.array(vector_dict[index], dtype=np.float32).tobytes()
item_metadata['item_vector']=item_keywords_vector
# HSET
p.hset(key,mapping=item_metadata)
p.execute()
def create_flat_index (redis_conn, number_of_vectors, vector_dimensions=512, distance_metric='L2'):
redis_conn.ft().create_index([
VectorField('item_vector', "FLAT", {"TYPE": "FLOAT32", "DIM": vector_dimensions, "DISTANCE_METRIC": distance_metric, "INITIAL_CAP": number_of_vectors, "BLOCK_SIZE":number_of_vectors }),
TagField("product_type"),
TextField("item_name"),
TextField("item_keywords"),
TagField("country")
])
|