MongoDB チュートリアルlogin
MongoDB チュートリアル
著者:php.cn  更新時間:2022-04-21 17:49:03

MongoDB の全文検索


全文検索では、各単語のインデックスが作成され、ユーザーがクエリを行うと、検索プログラムは事前に確立されたインデックスに基づいて検索し、検索結果をデータベースにフィードバックします。ユーザーの検索方法。

このプロセスは、辞書の検索語リストから単語を調べるプロセスに似ています。

MongoDB はバージョン 2.4 から全文検索をサポートし、現在 15 言語の全文インデックス作成をサポートしています (中国語は当面サポートされていません)。

  • デンマーク語

  • オランダ語

  • 英語

  • フィンランド語

  • フランス語

  • ドイツ語

  • ハンガリー語

  • イタリア語

  • ノルウェー語

  • ポルトガル語全文検索を有効にする

  • MongoDB はバージョン 2.6 以降、デフォルトで全文検索を有効にします。以前のバージョンで全文検索を有効にするには、次のコードを使用する必要があります:
  • >db.adminCommand({setParameter:true,textSearchEnabled:true})

    またはコマンド:

    mongod --setParameter textSearchEnabled=true
  • フルテキスト インデックスを作成します

    記事のコンテンツ (post_text) とタグ (tags) が含まれる次の投稿コレクションのドキュメント データを考えます:
  • {
       "post_text": "enjoy the mongodb articles on w3cschool.cc",
       "tags": [
          "mongodb",
          "w3cschool"
       ]
    }
  • post_text フィールドにフルテキスト インデックスを確立できるので、記事内のコンテンツを検索できます:

    >db.posts.ensureIndex({post_text:"text"})

  • 全文インデックスを使用する
  • post_text フィールドに全文インデックスを確立したので、記事 .cc でキーワード w3cschool を検索できます:

    >db.posts.find({$text:{$search:"w3cschool.cc"}})
  • 次のコマンドは、w3cschool.cc キーワードを含む次のドキュメント データを返します:
  • { 
       "_id" : ObjectId("53493d14d852429c10000002"), 
       "post_text" : "enjoy the mongodb articles on w3cschool.cc", 
       "tags" : [ "mongodb", "w3cschool" ]
    }
    {
       "_id" : ObjectId("53493d1fd852429c10000003"), 
       "post_text" : "writing tutorials on w3cschool.cc",
       "tags" : [ "mongodb", "tutorial" ] 
    }

    MongoDB の古いバージョンを使用している場合は、次のコマンドを使用できます:

    >db.posts.runCommand("text",{search:" w3cschool.cc"})
  • フルテキスト インデックスを使用すると、検索効率が向上します。

フルテキスト インデックスを削除する

既存のフルテキスト インデックスを削除するには、find コマンドを使用してインデックス名を検索します。

>db.posts.getIndexes()

この例では、インデックス名を取得します。次のコマンドを実行してインデックスを削除します:

>db.posts.dropIndex("post_text_text")