Files
vector_search/test_milvus.py
T
2026-07-09 10:26:27 -04:00

70 lines
1.8 KiB
Python

from pymilvus import MilvusClient, DataType
collection_name = "nuggets_{camera}_so400m_siglip2"
client = MilvusClient(
uri="http://localhost:19530"
)
# %%
coll_count = dict()
for c in sorted(client.list_collections()):
print(c, client.get_load_state(c), client.get_collection_stats(c))
# %%
from pymilvus import utility
# %%
import requests
query = 'A squirrel looking at the camera'
vec_form = requests.get('http://192.168.1.242:53004/encode',params={'query':query}).json()['vector'][0]
# %%
from datetime import datetime, timedelta
max_age = 5
str_insert = ''
days_step = 5
max_date = datetime.now()
min_date = max_date - timedelta(days=(max_age-1))
days_step = (max_date- min_date).days
day_strs = list()
for x in range(days_step):
day_strs.append( (min_date + timedelta(days=x)).strftime('%Y%m%d') )
str_insert = ','.join([f'"{x}"'for x in day_strs])
filter_string = 'date in [' + str_insert + ']'
import numpy as np
col_name = 'nuggets_railing_so400m_siglip2'
vec_search = np.asarray(vec_form).astype(np.float16)
results = client.search(collection_name = col_name,
consistency_level="Eventually",
data = [vec_search],
filter=filter_string,
search_params={'metric_type':'COSINE', 'params':{}},
output_fields=['filepath','frame_number']
)
# %%
for c in client.list_collections():
# ff = client.describe_collection(collection_name = c)
print(c)
# %%
col_target = 'nuggets_leopards1_so400m_siglip2'
import time
# %%
print(client.get_collection_stats(c))
# %%
# %%
st = time.time()
results = client.search(collection_name = col_target,data =[np.random.rand(1152).astype(np.float16)], limit = 100)
print(len(results[0]), time.time() - st)