sql >> Database >  >> NoSQL >> MongoDB

MongoDB-tekstindexfout:taaloverschrijving niet ondersteund

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.



  1. Mongodb onderscheiden op een matrixveld met regex-query?

  2. Het plaatsen van JSON naar Flask resulteert in 400 Bad Request-fout

  3. Een overzicht van Percona Backup voor MongoDB

  4. De maxTimeMS-parameter gebruiken met aggregatiequery's op Mongo 2.6 en Pymongo 2.7.1