Oplossing:
Stel de default_language
in en language_override
naar dezelfde letterlijke waarde (in jouw geval "en").
Hoe ik hier kwam...
Ik stuitte op hetzelfde probleem, ook op Mongo 2.6.1.
In mijn geval heb ik de index gemaakt met een language_override
verwijzend naar een taalveld waar al documenten waren met niet-ondersteunde waarden (bijv. 'ar' - Arabisch).
Zo maakte ik de index:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "language"
});
Ik hoopte dat het terug zou vallen op de default_language
wanneer de language_override
waarde wordt niet ondersteund, maar blijkbaar niet. Dit is wat Mongo zegt:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"ok" : 0,
"errmsg" : "language override unsupported: ar",
"code" : 17262
}
OK, prima, dus de index is niet gemaakt, maar ik zou hem moeten kunnen maken zonder de language_override, toch? Verkeerd - mongo geeft me dezelfde fout ook al heb ik de language_override niet langer gespecificeerd .
De mislukte poging om de index te maken lijkt een kapotte versie van de index te hebben achtergelaten die nergens wordt weergegeven, dus ik kan het niet laten vallen (het verschijnt niet in db.users.getIndexes()
en het op naam laten vallen werkt niet).
Uiteindelijk slaagde ik erin om de index te repareren door de language_override
. in te stellen naar de letterlijke waarde 'en', als volgt:
db.users.ensureIndex({
"displayName": "text",
"about": "text",
"email": "text"
}, {
"name": "users_full_text",
"default_language": "en",
"language_override": "en"
});
... waarop Mongo antwoordt:
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 3,
"numIndexesAfter" : 4,
"ok" : 1
}
Hoera.