MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Грешка в текстовия индекс на MongoDB:замяната на езика не се поддържа

Решение:

Задайте default_language и language_override до същата литерална стойност (във вашия случай "en").

Как стигнах до тук...

Срещнах същия проблем, също на Mongo 2.6.1.

В моя случай създадох индекса с language_override сочещи към езиково поле, където вече има документи с неподдържани стойности (напр. 'ar' - арабски).

Ето как създавах индекса:

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

Надявах се да се върне към default_language когато language_override стойността не се поддържа, но очевидно не. Ето какво казва Монго:

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

Добре, добре, значи индексът не е създаден, но трябва да мога да го създам без language_override, нали? Грешка - mongo ми дава същата грешка въпреки че вече нямам посочено language_override .

Неуспешният опит за създаване на индекса изглежда е оставил някаква повредена версия на индекса, която не се показва никъде, така че не мога да я пусна (не се появява в db.users.getIndexes() и изпускането му по име не работи).

В крайна сметка успях да коригирам индекса, като зададох language_override към литералната стойност 'en', като това:

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

... на което Монго отговаря:

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

ура



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да настроите FeatureCompatibilityVersion в MongoDB

  2. 4 начина за изтриване на документ в MongoDB

  3. Използване на sparse:true все още получава MongoError:E11000 грешка при дублиран ключ

  4. Предаване на променливи към изглед на MongoDB

  5. Преброяване на агрегацията на вложени обекти в MongoDB