You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Vector field with index_missing=True cannot be created #770
A vector field declared with index_missing: True makes SearchIndex.create() fail. The same review thread on #742 noted this, and the from_existing parser skips INDEXMISSING on vector fields for this reason.
BaseVectorFieldAttributes.field_data adds "INDEXMISSING": True to the algorithm attribute dict. redis-py's VectorField counts and sends every dict entry inside the attribute block, so:
The client rejects the Python bool before sending: Invalid input of type: 'bool'.
Even as a string, the server rejects the token inside the block: Bad arguments for algorithm HNSW: INDEXMISSING.
FT.CREATE expects INDEXMISSING after the attribute block, which is where redis-py puts it when you pass index_missing=True to the field constructor.
Reproduction
Redis 8.4, redis-py 8.1.0, RedisVL main (e5d7598):
redisvl.exceptions.RedisSearchError: Failed to create index 'im' on Redis:
Invalid input of type: 'bool'. Convert to a bytes, string, int or float first.
The same happens with flat and svs-vamana.
Expected behavior
The index is created with INDEXMISSING on the vector field, and ismissing(@emb) matches documents without the field.
Activity