Soluzione:
Imposta il default_language
e language_override
allo stesso valore letterale (nel tuo caso "en").
Come sono arrivato qui...
Ho riscontrato lo stesso problema, anche su Mongo 2.6.1.
Nel mio caso ho creato l'indice con un language_override
che punta a un campo della lingua in cui erano già presenti documenti con valori non supportati (ad es. 'ar' - arabo).
Ecco come stavo creando l'indice:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "language"
});
Speravo che tornasse al default_language
quando language_override
il valore non è supportato, ma a quanto pare no. Ecco cosa dice Mongo:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"ok" : 0,
"errmsg" : "language override unsupported: ar",
"code" : 17262
}
OK, bene, quindi l'indice non è stato creato ma dovrei essere in grado di crearlo senza language_override, giusto? Sbagliato - mongo mi dà lo stesso errore anche se non ho più il language_override specificato .
Il tentativo fallito di creare l'indice sembra aver lasciato una versione non funzionante dell'indice che non viene visualizzata da nessuna parte, quindi non posso eliminarla (non appare in db.users.getIndexes()
e rilasciarlo per nome non funziona).
Alla fine sono riuscito a correggere l'indice impostando il language_override
al valore letterale 'en', in questo modo:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "en"
});
... a cui Mongo risponde:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}
Evviva.