我在 MongoDB 中遇到字符润色问题。例如,我有一个单词:"śliwka"
,当我使用完整搜索时,MongoDB会自动将该单词转换为"sliwka"
,但如果我想搜索单词"łukasz"
,MongoDB没有将其转换为"lukasz"
。
如何让MongoDB将ł
和l
视为同一个角色?
答案 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"];