Решение:
Задайте 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
}
ура