3 votes

MongoDB ne correspond pas à l'insensibilité aux diacritiques

J'ai lu et relu le docs J'ai cherché une réponse sur SO et Google, mais je ne trouve pas de raison à cela.

J'ai une collection que je déclare comme telle

import { Meteor } from 'meteor/meteor'

export default InventoryItems = new Meteor.Collection('inventory-items');

if (Meteor.isServer) {
  // https://docs.mongodb.com/manual/tutorial/control-results-of-text-search/

  InventoryItems._ensureIndex({ sku: 1 }, {
    name: 'UniqueIndex',
    unique: true
  });

  InventoryItems._ensureIndex({ sku: 'text', name: 'text', description: 'text' }, {
    name: 'SearchIndex',
    weights: {
      sku: 10,
      name: 5,
      description: 1
    },
    default_language: 'french'
  });
}

Ensuite, étant donné ces entrées

InventoryItems.insert({ sku:'B-WA', name:'Barrière WA', description:'' });
InventoryItems.insert({ sku:'B-WT', name:'Barrière WT', description:'' });
InventoryItems.insert({ sku:'B-WL', name:'Barrière WL', description:'' });

et recherche

InventoryItems.find({ $text: { $search: 'barrier' } });

il renvoie la collection entière, mais si je fais

InventoryItems.find({ $text: { $search: 'barriere' } });

il retourne nada ! ¯\_(ツ)_/¯

Pourquoi le premier correspond-il, mais pas l'autre ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X