Solução:
Defina o
default_language
e language_override
para o mesmo valor literal (no seu caso "en"). Como cheguei aqui...
Eu bati o mesmo problema, também no Mongo 2.6.1.
No meu caso eu criei o índice com um
language_override
apontando para um campo de idioma onde já havia documentos com valores não suportados (por exemplo, 'ar' - árabe). Veja como eu estava criando o índice:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "language"
});
Eu esperava que voltasse para o
default_language
quando o language_override
value não é suportado, mas aparentemente não. Veja o que diz Mongo:{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"ok" : 0,
"errmsg" : "language override unsupported: ar",
"code" : 17262
}
OK, tudo bem, então o índice não foi criado, mas eu deveria ser capaz de criá-lo sem o language_override, certo? Errado - o mongo me dá o mesmo erro mesmo que eu não tenha mais o language_override especificado .
A tentativa fracassada de criar o índice parece ter deixado para trás uma versão quebrada do índice que não aparece em nenhum lugar, então não posso soltá-lo (ele não aparece em
db.users.getIndexes() e soltá-lo pelo nome não funciona).
No final, consegui corrigir o índice definindo o language_override
para o valor literal 'en', assim:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "en"
});
... ao que Mongo responde:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}
Viva.