Description
I’m trying to filter on nested properties of my data, but getting this error:
grpc._channel._InactiveRpcError: <_InactiveRpcError of RPC that terminated with:
status = StatusCode.UNKNOWN
details = “explorer: get class: vector search: object vector search at index idx_23a2d2a3005d23f9bbe689206ca32fb5: shard idx_23a2d2a3005d23f9bbe689206ca32fb5_A3OTVDfioAKG: build inverted filter allow list: nested query: nested clause at pos 7: data type “object” not supported in query”
debug_error_string = “UNKNOWN:Error received from peer {created_time:“2024-09-25T13:48:00.981306+02:00”, grpc_status:2, grpc_message:“explorer: get class: vector search: object vector search at index idx_23a2d2a3005d23f9bbe689206ca32fb5: shard idx_23a2d2a3005d23f9bbe689206ca32fb5_A3OTVDfioAKG: build inverted filter allow list: nested query: nested clause at pos 7: data type "object" not supported in query”}”> >
I’m not sure if I’m incorrectly refering to the property in the filters, which I’m doing through Filter.by_property(<property_name.nested_property_name>)
.
Example of the filters:
retriever_filters = {'filters': [_FilterValue(value='Computer Tower', operator=<_Operator.LIKE: 'Like'>, target='details.Form_Factor'), _FilterValue(value='NVIDIA', operator=<_Operator.LIKE: 'Like'>, target='details.Graphics_Card_Description'), _FilterValue(value='AMD', operator=<_Operator.LIKE: 'Like'>, target='details.Graphics_Card_Description'), _FilterValue(value=['16 GB', '32 GB', '64 GB'], operator=<_Operator.CONTAINS_ANY: 'ContainsAny'>, target='details.RAM'), _FilterValue(value=['Intel Core i7', 'Intel Core i5', 'Ryzen 5'], operator=<_Operator.CONTAINS_ANY: 'ContainsAny'>, target='details.CPU_Model'), _FilterValue(value='gaming', operator=<_Operator.LIKE: 'Like'>, target='details.Brand')]}
Server Setup Information
- Weaviate Server Version: 1.26.3 ( Docker image )
- Deployment Method: Docker
- Multi Node? Number of Running Nodes:
I’m not sure I’m deploying it through:
docker run -p 8080:8080 -p 50051:50051 --env-file .env.local -e QUERY_DEFAULTS_LIMIT=20 -e AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=true -e PERSISTENCE_DATA_PATH=/data -v weaviate_data:/data semitechnologies/weaviate:1.26.3
where .env.local:
ENVIRONMENT=local
HOST=0.0.0.0
PORT=80
ACCESSIBLE_HOST=localhost
ACCESSIBLE_PORT=8000
GOOGLE_APPLICATION_CREDENTIALS=/code/app/auth.json
WEAVIATE_SERVER_URL=http://weaviate:8080
WEAVIATE_SERVER_GRPC_PORT=50051
OPENAI_API_KEY=<key>
- Client Language and Version:
langchain-weaviate==0.0.2
weaviate-client==4.6.4
python 3.11.9 - Multitenancy?:
Not that I know of, using default configs
Additional information
The vector store is created through the LangChain FastAPI backend using langchain-weaviate:
WeaviateVectorStore.from_documents(
documents,
client=WeaviateClient(connection_params=ConnectionParams.from_url("http://localhost:8080", 50051)),
embedding=OpenAIEmbeddings(api_key=os.environ["OPENAI_API_KEY"]),
index_name=index_name
)
loaded through:
WeaviateVectorStore(
client=WeaviateClient(connection_params=ConnectionParams.from_url("http://localhost:8080", 50051)),
embedding=OpenAIEmbeddings(api_key=os.environ["OPENAI_API_KEY"]),
index_name=index_name,
text_key="text"
)
and queried through:
WeaviateVectorStore.as_retriever(search_type="similarity",search_kwargs={"k": 50, "filters": retriever_filters})