milvus-io / milvus-lite

A lightweight version of Milvus
Apache License 2.0
240 stars 29 forks source link

query() without filter not working #146

Closed Jacksonxhx closed 3 weeks ago

Jacksonxhx commented 1 month ago

Issue: The results are empty if i use milvus lite, however, it should be all the data inserted. If I use Docker, the results are all the data i inserted

Code:

import random
import uuid
from pymilvus import MilvusClient, DataType

#DATA
def generate_id_from_label(label: str) -> uuid.UUID:
    return uuid.uuid5(uuid.NAMESPACE_DNS, label)

def generate_random_vector_entry(id: str, dimension: int):
    vector = [random.random() for _ in range(dimension)]
    metadata = {"key": f"value_{id}"}
    return [generate_id_from_label(id), vector, metadata]

dimension = 3
num_entries = 100
sample_entries = [
    generate_random_vector_entry(f"id_{i}", dimension)
    for i in range(num_entries)
]

# Credentials
'''If I use milvus lite the result is none, but the docker can work'''
MILVUS_URI = "./milvus_lite_demo1.db"
# MILVUS_URI = "http://10.100.30.11:19530"
client = MilvusClient(uri=MILVUS_URI)
collection_name="milvus_demo_collection_222"

# Collections
schema = client.create_schema(auto_id=False, enable_dynamic_field=True,)
schema.add_field(field_name="id", datatype=DataType.VARCHAR, is_primary=True, max_length=36,)
schema.add_field(field_name="vector", datatype=DataType.FLOAT_VECTOR, dim=dimension,)
index_params = client.prepare_index_params()
index_params.add_index(index_type="AUTOINDEX", field_name="vector", metric_type="COSINE",)
client.create_collection(collection_name=collection_name, schema=schema, index_params=index_params, consistency_level=0)

# Upsert
for sample_entry in sample_entries:
    data = {"id": str(sample_entry[0]), "vector": sample_entry[1]}
    for key, value in sample_entry[2].items():
        data[key] = value
    client.upsert(collection_name=collection_name, data=data)

# Query
results = client.query(collection_name=collection_name, filter="", consistency_level=0, output_fields=["key"], limit=1000)

print(results)
junjiejiangjjj commented 1 month ago

/assign @Presburger

junjiejiangjjj commented 3 weeks ago

This issue has been resolved in version 2.4.7