Search vector contains invalid values

TL;DR — parameter SearchVector Anda bentuknya salah. Embedding yang tersimpan hidup di dalam atribut L, tetapi parameter query adalah array telanjang berisi nilai {"N": …}. Buka bungkus L-nya, dan pastikan setiap elemen adalah angka polos.

Apa artinya

ValidationException: Search vector contains invalid values. All values in the search vector must be a 32-bit floating-point number attribute

Itu respons layanan verbatim yang kami tangkap di us-east-1 dengan membungkus query vector dalam tipe L DynamoDB. SearchVectors menolak request sebelum menyentuh indeks.

Mengapa itu terjadi

Format wire-nya asimetris, dan hampir semua orang mengalaminya sekali. Embedding yang tersimpan pada item adalah atribut List:

{"embedding": {"L": [{"N": "0.0132"}, {"N": "-0.0475"}]}}

Parameter request SearchVector bukan. Ia adalah array JSON telanjang berisi nilai angka:

[{"N": "0.0132"}, {"N": "-0.0475"}]

Kirim bentuk tersimpan sebagai bentuk query dan Anda mendapat error ini. Ia juga muncul ketika sebuah elemen di dalam array berupa string, boolean, atau struktur bersarang alih-alih nilai N.

Bagaimana cara memperbaikinya

Lewatkan array-nya secara langsung. Dengan CLI, payload file://query-vector.json adalah array telanjang; di SDK, bangun SearchVector sebagai list angka AttributeValue, bukan satu nilai L. Jika Anda memakai ulang helper marshalling yang menghasilkan atribut tersimpan, buka bungkus keluarannya sebelum meng-query.

Jumlah dimensi diperiksa terpisah, jadi vektor tanpa bungkus yang panjangnya salah gagal dengan pesan berbeda: Invalid size for parameter.

Terkait

Cara kerja sisi query dari ujung ke ujung, dengan model biaya yang diukur live: panduan vector search DynamoDB.

Bekerja dengan DynamoDB tanpa Console

Klien desktop DynamoDB yang cepat dan menjalankan SQL sungguhan yang tidak bisa dijalankan DynamoDB — JOINs, GROUP BY, agregasi — dengan editing visual dan agen AI pada kunci Bedrock milik Anda sendiri.

Uji coba gratis 30 hari, tanpa kartu kredit — lalu paket Free tanpa batas waktu.