MongoDB Searchとは
MongoDB Search は、関連性ベースのアプリ機能を構築するためのシームレスでスケーラブルなエクスペリエンスを提供し、データベースと並行して別の検索システムを実行する必要を排除します。
MongoDB Search を使用して、クラスター上のデータに対して、きめ細かなテキストインデックスを作成し、クエリを実行できます。MongoDB Search は、数種類の テキスト アナライザ、複雑な検索ロジックを作成するための豊富なクエリ言語、カスタマイズ可能なスコアベースの結果ランキング、オートコンプリート、ページ分割、ファセットなどのアプリケーション用の高度な検索機能を提供します。
ユースケース
MongoDB Search は、次のようなさまざまなユースケースをサポートしています。
入力しながら検索: ユーザーがアプリケーションの 検索フィールドに文字を入力するにつれて単語を予測する精度が向上するには、 MongoDB Search の オートコンプリート 演算子を使用して部分的な単語を予測して結果を返します。詳しくは、オートコンプリートおよび部分一致のMongoDB Search クエリの実行方法 を参照してください。
ファセット検索:アプリケーションのユーザーがフィルターを使用して検索結果を絞り込むには、 MongoDB Search
facet(MongoDB Search 演算子)コレクターを使用して、結果を の値または範囲でグループ化するファセットを構築します。ファセット フィールド。詳しくは、 MongoDB Searchでファセットの使用方法 を参照してください。ページに分けた結果: 結果のページをグループ化し、「次のページ」や「前のページ」などの関数を実装するには、 MongoDB Search
searchSequenceTokenをsearchAfterおよびsearchBeforeオプションとともに使用して、ページを順番に走査し、ページ間を移動できます。詳細については、「結果をページ分割する方法」を参照してください。
重要な概念
以下の概念はMongoDB Search の基礎を形成し、アプリケーションを最適化するために不可欠です。
検索クエリとは何ですか?
検索クエリは、検索インデックスを参照し、結果のセットを返します。伝統的なデータベースのクエリと違い、より一般的な情報ニーズをみたすデータベースクエリは構文 に厳格に従う必要がある場合、単純なテキスト一致には検索クエリを使用できます。また、類似のフレーズ、数字、データ範囲、正規表現、ワイルドカードを検索することもできます。
MongoDB Search クエリは 集計パイプラインステージの形式をとります。 MongoDB Search には ステージと$search ステージがあり、$searchMeta クエリパイプライン内の他の集計パイプラインステージ で使用できます。 MongoDB Search は、これらの集計パイプラインステージ内で使用できるクエリ 演算子 と コレクション を提供します。
詳細については、「クエリ & インデックス」を参照してください。
検索インデックスとは何ですか?
インデックスとは、検索で使用する場合、簡単に検索可能な形式でデータを分類するデータ構造です。検索インデックスを利用すると、コレクション全体をスキャン する必要なしに、指定タームを含むドキュメントをすばやく取得できます。 MongoDB Search インデックスとMongoDBインデックスのどちらもデータ取得を高速化しますが、それらは異なります。検索インデックスは、本の末尾のインデックスのようにタームとそのタームを含むドキュメントを紐付けします。検索インデックスには、ドキュメント内のタームの位置付けなど、他の関連メタデータも含まれます。
静的マッピングを使用して、単一または複数のフィールドでMongoDB Searchインデックスを作成できます。あるいは、動的マッピングを有効にして、ドキュメント内のすべての動的にインデックス付け可能なフィールドを自動的にインデックスこともできます。MongoDB Search インデックスは、多形データと埋め込みドキュメント、または入力しながら検索する検索やファセット検索などの特定のユースケースで作成できます。
詳細については、「サポートされているクライアント」を参照してください。
検索アナライザーとトークンとは何ですか?
検索インデックスを作成すると、Atlas Search はデータを一連のトークンまたはタームに変換します。アナライザ が次のようなステップを通じてこのプロセスを促進します。
トークン化: 文字列内の単語をインデックスを作成可能なトークンに分割します(空白や句読点で文章を分割するなど)。
正規化: テキストを小文字に変換したり、ストップワードと呼ばれる不要な単語を削除したりするなど、一貫した表現と簡単な分析のためにデータを整理します。
ステミング: 接尾辞、接頭辞、複数形の語形を無視して、単語を語幹形態まで縮小します。
トークン化の明細は言語に固有であり、追加の選択が必要になる場合があります。使用するアナライザは、データとアプリケーションによって異なります。
MongoDB Search にはいくつかの組み込みアナライザが用意されています。独自のカスタムアナライザを作成することもできます。マルチアナライザを使用して代替アナライザを指定できます。
詳細については、「アナライザによるデータ処理」を参照してください。
検索スコアとは何ですか?
クエリ結果内の各ドキュメントには、結果を関連性の高いものから低いものの順に並べ替えられる関連性スコアが与えられます。最も単純な形式のスコアリングでは、クエリタームがドキュメントに頻繁に表示される場合は高く、クエリタームがコレクション内の多数のドキュメントにわたり表示される場合は低くなります。関連性ベースのデフォルトスコアをブースト、減少、または変更することで、特定のドメインへの検索をカスタマイズすることもできます。
詳細については、「ドキュメントのスコアリング」を参照してください。
次のステップ
MongoDB Search インデックスの作成、およびサンプルデータに対してMongoDB Search クエリの実行中実践的な情報については、 MongoDB Search クイック スタート をお試しください。