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

$text検索で部分一致を実行できますか

    MongoDB $text 検索は部分一致をサポートしていません。 MongoDBでは、大文字と小文字の区別、区切り文字、ストップワード、ステミングをサポートする文字列コンテンツのテキスト検索クエリが可能です。また、検索文字列内の用語は、デフォルトでORされています。

    (非常に便利な:)例を1つずつ取り上げます:

    単一期間、部分的

    // returns nothing because there is no world word with the value `Crai` in your
    // text index and there is no whole word for which `Crai` is a recognised stem
    db.submissions.find({"$text":{"$search":"\"Crai\""}})
    

    複数の用語、完全

    // returns the document because it contains all of these words
    // note in the text index Dr. Bob is not a single entry since "." is a delimiter
    db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bob\""}})
    

    複数の用語、1つの部分

    // returns the document because it contains the whole word "Craig" and it 
    // contains the whole word "Dr" 
    db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})
    

    複数の用語、両方とも部分的

    // returns the document because it contains the whole word "Dr"
    db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})
    

    $searchに注意してください 文字列は...

    したがって、$searchに少なくとも1つの用語がある場合 文字列が一致すると、MongoDBはそのドキュメントと一致します。

    この動作を確認するには、Dr. Bob DrBobへ 次のクエリはいいえを返します ドキュメント:

    db.submissions.find({"$text":{"$search":"\"Craig\" \"Dr. Bo\""}})
    db.submissions.find({"$text":{"$search":"\"Crai\" \"Dr. Bo\""}})
    

    Drのため、これらは一致を返さないようになりました .が後に続かないため、テキストインデックスの単語全体ではなくなりました。 区切り文字。



    1. 遊ぶ! 2フレームワーク-JavaMongoドライバーを追加します

    2. 私が5人のように説明する:テキストと画像フィールドのあるフォーム>ルート>コントローラー> MongoDBドキュメントへの書き込み-GridFSはどこに行きますか?

    3. マングースを使用したMongoDBへの一括挿入

    4. リアルタイムアプリケーションの初心者-Node.JS+RedisまたはRabbitMQ->クライアント/サーバーどのように?