Hi, I am trying to make filters to query with multiple operands using python v4 client. I am combining different filters to make a combined filter at runtime.
for single_filter in filters:
combined_filters = combined_filters & single_filter if combined_filters else single_filter
I want to add more operands to the filter. Is there any efficient way to make the filters at runtime?
Hi @Jegadeesh !!
I have used this code sample for creating dynamic filters on coderun:
Let me know if this is something you are looking for:
filter_metal = True
filters = [
Filter("question").like("*is*"),
(Filter("count").greater_than(5) & Filter("count").less_than(10))
]
if filter_metal:
filters.append(Filter("question").like("*metal*"))
combined_filter = reduce(lambda x, y: x & y, filters)
from weaviate.classes import Filter
jeopardy = client.collections.get("Question")
response = jeopardy.query.fetch_objects(
filters=combined_filter,
limit=3
)