mirror of https://github.com/langgenius/dify.git
fix: fix missing not in (#30207)
This commit is contained in:
parent
8611301722
commit
d20a8d5b77
|
|
@ -1219,7 +1219,7 @@ class DatasetRetrieval:
|
||||||
|
|
||||||
case "≥" | ">=":
|
case "≥" | ">=":
|
||||||
filters.append(DatasetDocument.doc_metadata[metadata_name].as_float() >= value)
|
filters.append(DatasetDocument.doc_metadata[metadata_name].as_float() >= value)
|
||||||
case "in":
|
case "in" | "not in":
|
||||||
if isinstance(value, str):
|
if isinstance(value, str):
|
||||||
value_list = [v.strip() for v in value.split(",") if v.strip()]
|
value_list = [v.strip() for v in value.split(",") if v.strip()]
|
||||||
elif isinstance(value, (list, tuple)):
|
elif isinstance(value, (list, tuple)):
|
||||||
|
|
@ -1228,9 +1228,11 @@ class DatasetRetrieval:
|
||||||
value_list = [str(value)] if value is not None else []
|
value_list = [str(value)] if value is not None else []
|
||||||
|
|
||||||
if not value_list:
|
if not value_list:
|
||||||
filters.append(literal(False))
|
# `field in []` is False, `field not in []` is True
|
||||||
|
filters.append(literal(condition == "not in"))
|
||||||
else:
|
else:
|
||||||
filters.append(json_field.in_(value_list))
|
op = json_field.in_ if condition == "in" else json_field.notin_
|
||||||
|
filters.append(op(value_list))
|
||||||
case _:
|
case _:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue