View a markdown version of this page

Mengatasi masalah indeks vektor - Amazon DynamoDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengatasi masalah indeks vektor

Tabel berikut mencantumkan masalah umum saat bekerja dengan indeks vektor dan cara mengatasinya.

Gejala Penyebab Resolusi
ValidationException: SearchConditionExpression must be provided when SearchSchema has a HASH key Indeks mendefinisikan kunci partisi indeks vektor (HASH) di dalamnya SearchSchema, tetapi pencarian tidak memberikan nilainya. Tambahkan kesetaraan kunci partisi indeks vektor keSearchConditionExpression, misalnyaCategory = :cat, dengan ExpressionAttributeValues entri yang cocok.
ValidationException: One element in SearchSchema is not defined in attribute definitions A SearchSchema tribut (kunci partisi indeks vektor atau filter sebaris) tidak dideklarasikan dalam tabelAttributeDefinitions. Tambahkan setiap SearchSchema atribut AttributeDefinitions dengan jenisnya, dengan cara yang sama atribut kunci dideklarasikan untuk indeks sekunder global.
ValidationException: Invalid comparator used in SearchConditionExpression Operator selain = yang digunakan. Hanya operator kesetaraan yang saat ini didukung untuk kunci partisi indeks vektor dan atribut filter sebaris. Tulis ulang kondisi untuk digunakan = saja. Operator perbandingan, jangkauan, dan set-keanggotaan belum tersedia.
ValidationException: Provided TopK value is out of valid range TopKberada di luar 1 sampai 100. Set TopK el ke nilai dari 1 hingga 100 inklusif.
SearchVectorsmengembalikan kesalahan saat indeks diisi ulang Indeks vektor belum siap untuk pencarian. En IndexStatus tah adalahCREATING, atau IndexStatus Backfilling diatur ketrue. ACTIVE Anda tidak dapat mencari indeks vektor sampai pengisian ulang selesai. Gunakan DescribeTable dan tunggu sampai Backfillingfalse, lalu coba lagi pencarian.
Menulis ditolak saat menulis item dengan vektor Vektor memiliki jumlah dimensi yang salah untuk indeks. Pastikan panjang vektor cocok dengan indeksDimensions. Lihat Menulis item dengan data vektor.
Menulis ditolak dengan “Jenis parameter tidak valid” Atribut vektor memiliki tipe data yang salah. DynamoDB mengharapkan daftar nomor float point 32-bit. Penyebab umum termasuk mengirim String (S), Number scalar (N), Number Set (NS), atau List yang berisi elemen non-numerik. Pesan kesalahan menunjukkan indeks elemen yang menyinggung ketika satu anggota memiliki tipe yang salah. Kirim atribut vektor sebagai List (L) dari Numbers (N). Verifikasi bahwa setiap elemen dalam daftar adalah nomor yang valid dan panjang daftar cocok dengan indeksDimensions.
Item tidak lagi dikembalikan SearchVectors setelah menghapus atau menghilangkan atribut kunci partisi indeks vektor Menghapus atribut kunci partisi indeks vektor dari item (via REMOVE inUpdateItem) atau menghilangkannya di a PutItem tidak menghasilkan kesalahan. Namun, item tersebut diam-diam dideindeks dan tidak lagi muncul di hasil pencarian, meskipun item tabel dasar dan penyematan vektornya masih ada. Pastikan bahwa setiap item yang Anda inginkan dapat dicari mempertahankan atribut kunci partisi indeks vektor. Jika item tiba-tiba menghilang dari hasil pencarian, verifikasi bahwa atribut kunci partisinya masih ada pada item tabel dasar.
Tulis ditolak dengan “tidak dapat berisi nilai string kosong” atau ketik ketidakcocokan untuk kunci partisi indeks vektor Atribut kunci partisi indeks vektor disetel ke string kosong atau ditulis dengan tipe data yang salah. DynamoDB menolak penulisan ini karena atribut kunci indeks tidak dapat kosong dan harus cocok dengan tipe yang dideklarasikan. Gunakan nilai yang valid dan tidak kosong dengan tipe data yang benar untuk atribut kunci partisi indeks vektor. Periksa definisi indeks untuk mengonfirmasi jenis yang diharapkan.
Atribut hilang dari hasil pencarian Indeks vektor tidak memproyeksikan atribut ini. Anda hanya dapat mengambil atribut yang diproyeksikan ke dalam indeks. Untuk mengembalikan atribut tambahan, buat ulang indeks dengan proyeksi yang lebih luas atau disetel ProjectionType keALL.

Menambahkan kunci partisi ke indeks vektor yang ada

Indeks vektor SearchSchema ditetapkan pada waktu pembuatan. Anda tidak dapat menambahkan, menghapus, atau mengubah kunci partisi (HASH) setelah Anda membuat indeks. Anda juga tidak dapat mengubah atribut filter sebaris. Untuk mengubah skema, buat indeks baru dan bermigrasi ke sana.

Untuk menambahkan kunci partisi atau mengubah SearchSchema atribut lainnya, selesaikan langkah-langkah berikut.

  1. Buat indeks vektor baru dengan kunci partisi yang Anda butuhkan. Gunakan UpdateTable API dengan Create tindakan dalam VectorIndexUpdates parameter. Berikan indeks baru nama yang berbeda. Untuk petunjuk, lihat Menambahkan indeks vektor ke tabel yang ada.

  2. Tunggu indeks baru selesai diisi ulang. Panggil DescribeTable dan konfirmas IndexStatus ikan itu ACTIVE ada dan Backfilling sedangfalse.

  3. Perbarui aplikasi Anda untuk mengirim SearchVectors permintaan ke indeks baru. Sertakan nilai kunci partisi diSearchConditionExpression. Untuk informasi selengkapnya, lihat Penyaringan dengan SearchConditionExpression.

  4. Setelah Anda mengkonfirmasi hasil yang benar, hapus indeks lama untuk berhenti membayar penyimpanannya. Gunakan UpdateTable API dengan Delete tindakan dalam VectorIndexUpdates parameter. Untuk petunjuk, lihat Menghapus indeks vektor.

Operasi indeks tidak mempengaruhi data tabel dasar

Membuat atau menghapus indeks vektor tidak mempengaruhi tabel dasar atau itemnya. DynamoDB memperoleh kembali data vektor dari item tabel dasar selama pengisian ulang.