Skip to content

toQdrantFilter

toQdrantFilter(where, toField?): Record<string, unknown>

Defined in: qdrant-filter.ts:79

Convert a Mantle QueryParams.where clause to a Qdrant payload filter object.

Mapping rules: { field: value } → must: [{ key: “field”, match: { value } }] { field: null } → must: [{ is_null: { key: “field” } }] { field: [a, b] } → must: [{ key: “field”, match: { any: [a, b] } }] { field: { $lt/$lte/$gt/$gte } } → must: [{ key: “field”, range: { … } }] { field: { $ne: value } } → must_not: [{ key: “field”, match: { value } }] { field: { $ne: null } } → must_not: [{ is_null: { key: “field” } }] { field: { $in: […] } } → must: [{ key: “field”, match: { any: […] } }] { field: { $nin: […] } } → must_not: [{ key: “field”, match: { any: […] } }] { field: { $contains: v } } → must: [flattened match conditions — see flattenContains] { $or: […] } → should: [mapped…] { $and: […] } → must: [mapped…]

Nested fields ("metadata.owner.name") are addressed natively — Qdrant’s payload filter key accepts dot-path strings directly, no translation needed.

Unsupported operators (including $like/$ilike/$notlike) throw BadRequest.

WhereClause

(field) => string

Record<string, unknown>