数字比较即对数字进行等于、小于、大于等于、小于等于比较。
在 Chroma 中,需要使用 $gt(大于)、$gte(大于等于)、$lt(小于)、$lte(小于等于)运算符处理。
例如:
print("\n--- year 大于 2022 ---")
show(col.get(where={"year": {"$gt": 2022}}))
print("\n--- year 大于等于 2022 ---")
show(col.get(where={"year": {"$gte": 2022}}))
print("\n--- score 小于 0.6 ---")
show(col.get(where={"score": {"$lt": 0.6}}))
print("\n--- score 小于等于 0.5 ---")
show(col.get(where={"score": {"$lte": 0.5}}))运行示例,输出结果:
--- year 大于 2022 ---
id=r3, document=物流 logistics, metadata={'cat': '物流', 'score': 0.7, 'tags': ['a', 'd'], 'year': 2024, 'is_public': False}
id=r4, document=退货政策, metadata={'tags': ['b', 'd'], 'is_public': False, 'year': 2024, 'cat': '售后', 'score': 0.3}
--- year 大于等于 2022 ---
id=r2, document=发票 invoice, metadata={'is_public': False, 'score': 0.5, 'year': 2022, 'tags': ['c'], 'cat': '财务'}
id=r3, document=物流 logistics, metadata={'cat': '物流', 'score': 0.7, 'tags': ['a', 'd'], 'year': 2024, 'is_public': False}
id=r4, document=退货政策, metadata={'year': 2024, 'is_public': False, 'score': 0.3, 'cat': '售后', 'tags': ['b', 'd']}
--- score 小于 0.6 ---
id=r2, document=发票 invoice, metadata={'is_public': False, 'year': 2022, 'cat': '财务', 'tags': ['c'], 'score': 0.5}
id=r4, document=退货政策, metadata={'tags': ['b', 'd'], 'score': 0.3, 'is_public': False, 'cat': '售后', 'year': 2024}
--- score 小于等于 0.5 ---
id=r2, document=发票 invoice, metadata={'year': 2022, 'cat': '财务', 'score': 0.5, 'tags': ['c'], 'is_public': False}
id=r4, document=退货政策, metadata={'score': 0.3, 'cat': '售后', 'year': 2024, 'tags': ['b', 'd'], 'is_public': False}注意:Chroma 也支持小数、负数,也能比时间戳(把时间存成 int 或 ISO 字符串都行,字符串比较是字典序,ISO 格式恰好能正确排序)。