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

MongoDB$text検索でANDとNOTを行う方法

    これらのニーズに合わせて、テキスト検索で使用できるオプションがいくつかあります。次のドキュメントを検討してください。

    { "text" : "cake" }
    { "text" : "sale" }
    { "text" : "sale cake" }
    { "text" : "cake sale" }
    { "text" : "dress sale" }
    { "text" : "cake sale monday" }
    

    単語のデフォルトの「リスト」はまたはです 包含しますが、および 単語を「引用」することを含める:

    db.words.find( { "$text": { "$search": "\"cake\" \"sale\"" } },{_id: 0})
    { "text" : "cake sale" }
    { "text" : "sale cake" }
    { "text" : "cake sale monday" }
    

    除外したい場合 単語の前に-を付けます :

    db.words.find( { "$text": { "$search": "\"cake\" \"sale\" -monday" } },{_id: 0})
    { "text" : "cake sale" }
    { "text" : "sale cake" }
    

    そして、その一部を正確なフレーズとして必要な場合は、 次に、フレーズ全体を「引用」します。

    db.words.find( { "$text": { "$search": "\"cake sale\" -monday" } },{_id: 0})
    { "text" : "cake sale" }
    

    ただし、単語のステミングには問題があるため、:

    db.words.find( { "$text": { "$search": "test -testing" } },{_id: 0})
    

    実際には結果を返しません。

    $textのドキュメントを参照してください 例については演算子。現在、すべてが揃っているわけではありませんが、改善されています。




    1. springboot2.0で@cacheableを使用するときにredisキャッシュごとに異なるttlを構成する方法

    2. Node.jsを使用してSSL経由でMongoDBに接続する

    3. redis/php-resqueを使用した同時ImageMagickリクエストの最適化

    4. Node.jsからRedisを使用する方法