sql >> Databáze >  >> NoSQL >> MongoDB

Chyba textového indexu MongoDB:přepsání jazyka není podporováno

Řešení:

Nastavte výchozí_jazyk a language_override na stejnou doslovnou hodnotu (ve vašem případě "en").

Jak jsem se sem dostal...

Narazil jsem na stejný problém, také na Mongo 2.6.1.

V mém případě jsem vytvořil index pomocí language_override odkazující na jazykové pole, kde již byly dokumenty s nepodporovanými hodnotami (např. 'ar' – arabština).

Zde je návod, jak jsem index vytvořil:

db.users.ensureIndex({ 
  "displayName": "text", 
  "about": "text", 
  "email": "text" 
}, { 
  "name": "users_full_text", 
  "default_language": "en",
  "language_override": "language"
});

Doufal jsem, že se vrátí k default_language při přepsání jazyka hodnota není podporována, ale zjevně ne. Zde je to, co říká Mongo:

{
  "createdCollectionAutomatically" : false,
  "numIndexesBefore" : 3,
  "ok" : 0,
  "errmsg" : "language override unsupported: ar",
  "code" : 17262
}

OK, dobře, takže index nebyl vytvořen, ale měl bych být schopen ho vytvořit bez language_override, že? Špatně – mongo mi zobrazuje stejnou chybu i když již nemám zadaný jazykový_přepis .

Zdá se, že neúspěšný pokus o vytvoření indexu po sobě zanechal nějakou nefunkční verzi indexu, která se nikde nezobrazuje, takže ji nemohu zahodit (neobjevuje se v db.users.getIndexes() a vypuštění podle názvu nefunguje).

Nakonec se mi podařilo opravit index nastavením language_override na doslovnou hodnotu 'en', takto:

db.users.ensureIndex({ 
  "displayName": "text", 
  "about": "text", 
  "email": "text" 
}, { 
  "name": "users_full_text", 
  "default_language": "en",
  "language_override": "en" 
});  

... na což Mongo odpovídá:

{
  "createdCollectionAutomatically" : false,
  "numIndexesBefore" : 3,
  "numIndexesAfter" : 4,
  "ok" : 1
}

Hurá.



  1. nastavit klíč vypršení platnosti v konkrétní čas při použití mezipaměti Spring s Redis

  2. Smyčka pomalé aktualizace Mongodb

  3. Vlastnost objektu MongoDB $existuje ve vnořeném poli

  4. Problém mongorestore:Nelze obnovit uživatele se schématem verze 1 do systému se serverem verze 2.5.4 nebo vyšší