OmerM
May 14, 2024, 2:55am
1
This query is throwing an error
const result: any = await myCollection.query.nearText([textStr], {
returnProperties: ['text', 'id'],
returnMetadata: ['distance'],
filters: myCollection.filter.byProperty('effectiveSince').isNull(true),
limit: 1,
});
The effectiveSince is of type Date.
I am using ^3.0.0-beta.23
The error I am getting back from Weaviate is
unknown filter operator OPERATOR_UNSPECIFIED
How do I fix it?
Hi @OmerM ,
This is a bug.
We will fix it with the next RC release.
I hope we can have the fix ready by the end of today.
OmerM:
How do I fix it?
When RC2 is ready, just update to ^3.0.0-rc.2
.
OmerM
May 14, 2024, 5:00pm
3
Thanks. Will keep an eye on it and get back to you on how it works for me.
OmerM
May 17, 2024, 3:07am
4
Hi @sebawita
Wanted to check in with you on how this is looking. I tried updating the node package but I am getting
No matching version found for weaviate-client@^3.0.0-rc.2.
Hey @OmerM ,
This is taking a bit longer than expected.
We will try to publish the fix early next week.
Apologies for the delay
Hi @OmerM ! I’ve released the v3.0.0-rc.3
image that should contain this fix, amongst other things. I hope this image resolves your issue, cheers!
OmerM
May 23, 2024, 6:34am
7
Hi @tsmith023
I am seeing this error with the most recent build. Interestingly enough I am using the weaviate REST endpoint :
WeaviateQueryError: Query call with protocol gRPC failed with message: /weaviate.v1.Weaviate/Search UNKNOWN: extract params: unknown value type <nil>
To debug it i simplified my query and using a very simple filter.
This does not work.
filters: Filters.and(
myCollection.filter.byProperty('companyId').equal(companyId),
myCollection.filter.byProperty('effectiveDate').isNull(true),
)
vs
This works
filters: Filters.and(
myCollection.filter.byProperty('companyId').equal(companyId),
myCollection.filter.byProperty('companyId').equal(companyId),
)
here is the definition of effectiveDate
name: 'effectiveDate',
dataType: ['date'],
description: 'Date',
vectorizer : 'none'
am I not able to check for null date on weaviate or is this a bug?
Additional information
Further down is how I am instantiating my client and here is my env variable
WEAVIATE_END_POINT=https://blee-hlrgx7sy.weaviate.network
const client: WeaviateClient = await weaviate.connectToWCS(process.env.WEAVIATE_END_POINT!, {
authCredentials: new weaviate.ApiKey(process.env.WEAVIATE_API_KEY!),
headers: {
'X-OpenAI-Api-Key': process.env.OPENAI_API_KEY!, // Replace with your inference API key
},
});
Hi @OmerM , I am sadly not able to replicate this error with v1.23.13
, v1.24.14
, or v1.25.1
and the following code using the v3.0.0-rc.3
version:
const collection = await client.collections
.create({
name: 'MyCollection',
invertedIndex: {
indexNullState: true,
},
properties: [
{
name: 'name',
dataType: 'text',
},
{
name: 'location',
dataType: 'geoCoordinates',
},
{
name: 'date',
dataType: 'date'
}
],
vectorizer: {
name: 'text2vec-contextionary',
config: {}
},
})
.then(() =>
collection.data.insertMany([
{
name: 'Tim',
location: {
latitude: 52.52,
longitude: 13.405,
},
date: new Date('2021-01-01T00:00:00Z')
},
{
name: 'Tom',
location: {
latitude: 53.55,
longitude: 10.0,
},
},
]);
const res = await collection.query.nearText(['Tom'], {
filters: Filters.and(
collection.filter.byProperty('date').isNull(true),
collection.filter.byProperty('name').equal('Tom')
)
});
expect(res.objects.length).toEqual(1);
expect(res.objects[0].properties.name).toEqual('Tom');
Is there potentially something else in your collection configuration that might be off? Which Weaviate version is your cluster?
OmerM
May 23, 2024, 9:28am
9
@tsmith023 I am currently on a sandbox cluster:
version is 1.24.10
I don’t have any proprietary data on the server yet, so I would be able to give you access to my cluster. Would that help?
OmerM
May 27, 2024, 7:02am
10
@tsmith023 / @sebawita What is the best way to investigate this issue?
Hi @OmerM , I pinged you on the Weaviate Community slack