Vector field with index_missing=True cannot be created
メンテナーはふだん 5 日以内に返信
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 72/100
調査の方向性
Start by reading BaseVectorFieldAttributes.field_data and the vector field construction path used by SearchIndex.create(); compare that with how redis-py’s VectorField accepts index_missing=True on the field constructor. Check the existing vector field tests for HNSW, flat, and svs-vamana. Done means index creation succeeds with index_missing: True and ismissing(@emb) matches documents without the field.
索引モデルが issue の本文から書いたものです。
説明
Description
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
boolbefore 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):
from redisvl.index import SearchIndex
schema = {
"index": {"name": "im", "prefix": "im", "storage_type": "hash"},
"fields": [
{"name": "id", "type": "tag"},
{"name": "emb", "type": "vector",
"attrs": {"dims": 3, "algorithm": "hnsw", "index_missing": True}},
],
}
SearchIndex.from_dict(schema, redis_url="redis://localhost:6379").create()
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.
- 主要言語
- Python
- スター
- 431
- フォーク
- 107
- 平均マージ
- 5日 17時間
- マージ済み PR(30日)
- 16
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
redis/redis-vl-python のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
redis/redis-vl-python#773 ·
メンテナーはふだん 5 日以内に返信
-
Add Python 3.15 support対応中かも @vishal-bala が 2 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
redis/redis-vl-python#757 · コメント 1 件 · リアクション 1 件 ·
メンテナーはふだん 5 日以内に返信
-
SearchIndex.drop_keys does not validate cluster hash-tag co-location (inconsistent with drop_documents)対応中かも @Hashim1999164 が今日担当しました。 オープンbug good first issue index
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
redis/redis-vl-python#601 ·
メンテナーはふだん 5 日以内に返信
-
documentation
難易度 1/5 1時間未満 初心者へのやさしさ 62/100
redis/redis-vl-python#300 ·
メンテナーはふだん 5 日以内に返信
-
Migration executor cannot read an FT.AGGREGATE cursor over a RESP3 connection, raising KeyError対応中かも @Kuang-xianxin が 42 日前に担当しました。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 68/100
redis/redis-vl-python#714 ·
メンテナーはふだん 5 日以内に返信
redis/redis-vl-python の issue をすべて見る
似ている issue
-
tunneld on Windows: Wi-Fi devices are not discovered because uvicorn runs on a ProactorEventLoopオープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
doronz88/pymobiledevice3#2051 ·
メンテナーはふだん 1 日以内に返信
-
Remove Datacircleオープン
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
collabnix/awesome-mcp-lists#230 ·
メンテナーはふだん 9 日以内に返信
-
Groc schedules with out of range values pass config validation and fail later when the scheduler is built対応中かも @auraseb が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
autowarefoundation/autoware_carla_scenario#342 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
ianktoo/project-monitor#14 ·