2016-08-06 9 views
2

MongoDBで文字の磨きに問題があります。たとえば、私は"śliwka"という単語があります。完全検索を使用すると、MongoDBは自動的にその単語を"sliwka"に変換しますが、"łukasz"という単語を検索する場合は、MongoDBは"lukasz"に変換しませんでした。MongoDBは "l"のように "³"を同義語として扱うことができますか?

łlは同じ文字のように扱うことができますか?

答えて

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"]; 
+0

はどうもありがとうございました。私はそれをチェックします:) – Adam

+0

どのようにJava言語に依存性を注入できますか?私はJSを介してMongoDBに接続したくないのですが、このオプションは非常に危険です:) – Adam

関連する問題