MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kesalahan Indeks Teks MongoDB:penggantian bahasa tidak didukung

Solusi:

Setel default_language dan language_override ke nilai literal yang sama (dalam kasus Anda "en").

Bagaimana saya sampai di sini...

Saya mengalami masalah yang sama, juga di Mongo 2.6.1.

Dalam kasus saya, saya membuat indeks dengan language_override menunjuk ke bidang bahasa di mana sudah ada dokumen dengan nilai yang tidak didukung (mis. 'ar' - Arab).

Inilah cara saya membuat indeks:

db.users.ensureIndex({ 
  "displayName": "text", 
  "about": "text", 
  "email": "text" 
}, { 
  "name": "users_full_text", 
  "default_language": "en",
  "language_override": "language"
});

Saya berharap itu akan kembali ke default_language ketika language_override nilai tidak didukung, tetapi tampaknya tidak. Inilah yang Mongo katakan:

{
  "createdCollectionAutomatically" : false,
  "numIndexesBefore" : 3,
  "ok" : 0,
  "errmsg" : "language override unsupported: ar",
  "code" : 17262
}

OK, baik, jadi indeks tidak dibuat tetapi saya harus dapat membuatnya tanpa language_override, kan? Salah - mongo memberi saya kesalahan yang sama meskipun saya tidak lagi memiliki language_override yang ditentukan .

Upaya yang gagal untuk membuat indeks tampaknya telah meninggalkan beberapa versi indeks yang rusak yang tidak muncul di mana pun sehingga saya tidak dapat menghapusnya (tidak muncul di db.users.getIndexes() dan menjatuhkannya dengan nama tidak berfungsi).

Pada akhirnya saya berhasil memperbaiki indeks dengan mengatur language_override dengan nilai literal 'en', seperti ini:

db.users.ensureIndex({ 
  "displayName": "text", 
  "about": "text", 
  "email": "text" 
}, { 
  "name": "users_full_text", 
  "default_language": "en",
  "language_override": "en" 
});  

... yang dibalas Mongo:

{
  "createdCollectionAutomatically" : false,
  "numIndexesBefore" : 3,
  "numIndexesAfter" : 4,
  "ok" : 1
}

Hore.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Masukkan ke MongoDB melalui Node.js

  2. Apa perbedaan antara toGMTstring() dan toUTCstring()?

  3. Kalikan bidang dengan nilai di Mongodb

  4. Bagaimana cara menambahkan bidang penambahan otomatis dalam agregat MongoDB?

  5. Migrasi dari MongoDB ke HBase