sql >> データベース >  >> NoSQL >> MongoDB

マングースの重みによる全文検索

    はい、Mongoose>=3.8.9で全文検索を使用できます。まず、コレクションには最大で1つのテキストインデックスを含めることができます(ドキュメントを参照)。したがって、いくつかのフィールドのテキストインデックスを定義するには、複合インデックスが必要です。

    schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' });
    

    これで、 $ textを使用できます このようなクエリ演算子:

    Model
        .find(
            { $text : { $search : "text to look for" } }, 
            { score : { $meta: "textScore" } }
        )
        .sort({ score : { $meta : 'textScore' } })
        .exec(function(err, results) {
            // callback
        });
    

    これにより、関連性スコアで結果が並べ替えられます。

    重みについては、重みオプションオブジェクトをindex()に渡すことができます。 メソッド(複合インデックスを定義する場合)(少なくともマングースのv4.0.1で動作):

    schema.index({ animal: 'text', color: 'text', pattern: 'text', size: 'text' }, {name: 'My text index', weights: {animal: 10, color: 4, pattern: 2, size: 1}});
    


    1. ネストされたフィールドのMongoDB更新データ

    2. Mongoose.js instance.save()コールバックが起動しない

    3. スペースを含むキーを使用してRedisから値を取得するにはどうすればよいですか?

    4. Redisson、作業キュー/デキュー。システム/ポッドのシャットダウンでの不完全なメッセージ処理に関するメッセージ/要素の処理に関する戦略