如何让MongoDB将“ł”视为“l”,作为同义词?

时间:2016-08-06 09:49:58

标签: java mongodb character-encoding

我在 MongoDB 中遇到字符润色问题。例如,我有一个单词:"śliwka",当我使用完整搜索时,MongoDB会自动将该单词转换为"sliwka",但如果我想搜索单词"łukasz",MongoDB没有将其转换为"lukasz"

如何让MongoDB将łl视为同一个角色?

1 个答案:

答案 0 :(得分:1)

在MongoDB中有一个用于创建同义词的库:

https://github.com/seelio/mongoose-synonyms

用法

  

定义架构后,使用要使用的字典加载插件   对于每个领域:

var mongooseSynonyms = require('mongoose-synonyms');
var MySchema = new mongoose.Schema({ ... });
MySchema.plugin(mongooseSynonyms, {
  dictionary: 'nicknames',
  fields: ['firstName', '$text.$search']
});
  

keyOnly确保每个术语都被替换为   仅限字典键,从而避免所有可能的同义词。例如,   用于以下词典条目:

dictionary["łukasz"] = ["lukasz"];

dictionary["ł"] = ["l"];