Quantcast
Channel: Weaviate Community Forum - Latest posts
Viewing all articles
Browse latest Browse all 3605

[Question] Bug in not_equal filter

$
0
0

Hi!

I have created a code with tokenization set to field, and now it works as expected

from weaviate import classes as wvc
client.collections.delete("Test")
collection = client.collections.create(
    name="Test",
    vectorizer_config=wvc.config.Configure.Vectorizer.none(),
    vector_index_config=wvc.config.Configure.VectorIndex.hnsw(
        distance_metric=wvc.config.VectorDistances.COSINE
    ),
    # Multi tenancy to separate each user's data
    multi_tenancy_config=wvc.config.Configure.multi_tenancy(
        enabled=True, auto_tenant_creation=True, auto_tenant_activation=True
    ),
    properties=[
        wvc.config.Property(
            name="lastUpdateDeviceId",
            data_type=wvc.config.DataType.TEXT,
            tokenization=wvc.config.Tokenization.FIELD
        )
    ],
    inverted_index_config=wvc.config.Configure.inverted_index(
        index_null_state=True,
        index_property_length=True,
        index_timestamps=True
    )
    # Specify some properties beforehand to set right data type (i.e. obj[] instead of string[])
    # properties=[
    # 	Property(name="tags", data_type=DataType.OBJECT_ARRAY),
    # ]
)

collection.tenants.create(
    tenants=[
        wvc.tenants.Tenant(name="tenantA"),
        wvc.tenants.Tenant(name="tenantB"),
    ]
)

from weaviate.util import generate_uuid5
collection.with_tenant('tenantA').data.insert(
	vector=[0.0] * 384,
	properties={'lastUpdateDeviceId': 'device-78C24351-F40A-4E37-8953-F003FA474877'},
	uuid=generate_uuid5("object1")
)

from datetime import datetime, timedelta, timezone
last_sync_datetime = datetime.now(timezone.utc).astimezone() - timedelta(minutes=10)

collection.with_tenant('tenantA').query.fetch_objects(
	filters=wvc.query.Filter.by_update_time().greater_than(last_sync_datetime) &
		wvc.query.Filter.by_property("lastUpdateDeviceId").not_equal('device-d06e69fb200a1b8fdb8a96d8aff91e9e7839f35d9ac0ad69780067174e26fda1'), 
	include_vector=True,
	return_metadata=wvc.query.MetadataQuery(last_update_time=True),
)

Note that, if I set the search query to d06e69fb200a1b8fdb8a96d8aff91e9e7839f35d9ac0ad69780067174e26fda1, instead of device-d0.... it will also work.

This is because device-d06.... will become two key workds: device and d06...

Let me know if this helps!


Viewing all articles
Browse latest Browse all 3605

Trending Articles