Docs Menu

Atlas Search の概要

Atlas Search は、関連性ベースのアプリ機能を構築するためのシームレスでスケーラブルなエクスペリエンスを提供し、データベースと並行して別の検索システムを実行する必要を排除します。

Atlas Search を使用して、クラスター上のデータに対して、きめ細かなテキストインデックスを作成し、クエリを実行できます。 Atlas Search は、数種類の テキスト アナライザ、複雑な検索ロジックを作成するための豊富なクエリ言語、カスタマイズ可能なスコアベースの結果ランキング、オートコンプリート、ページ分割、ファセットなどのアプリケーション用の高度な検索機能を提供します。

Atlas Search スタートガイド

Atlas Search は、次のようなさまざまなユースケースをサポートしています。

  • 入力しながら検索: ユーザーがアプリケーションの 検索フィールドに文字を入力するにつれて単語を予測する精度が向上するには、Atlas Search の オートコンプリート 演算子を使用して部分的な単語を予測し、結果を返すことができます。詳細については、「オートコンプリートおよび部分一致 Atlas Search クエリの実行方法」を参照してください。

  • ファセット検索:アプリケーションのユーザーがフィルターを使用して検索結果を絞り込むには、Atlas Searchファセットコレクター を使用して、ファセット フィールドの値または範囲で結果をグループ化するファセットを構築できます。詳しくは、「 Atlas Searchでファセットの使用方法 」を参照してください。

  • ページに分けた結果: 結果のページをグループ化し、「次のページ」や「前のページ」などの機能を実装するには、Atlas Search searchSequenceTokensearchAfter および searchBefore オプションとともに使用して、ページを順番に走査し、ページをまたがる。詳細については、「結果をページ分割する方法」を参照してください。

以下の概念はAtlas Search の基礎を形成し、アプリケーションを最適化するために不可欠です。

検索クエリは、検索インデックスを参照し、結果のセットを返します。伝統的なデータベースのクエリと違い、より一般的な情報ニーズをみたすことを目的とします。データベースクエリは構文に厳格に従う必要があるのに対し、検索クエリは単純なテキスト一致に使用できます。ただし、類似のフレーズ、数字、データ範囲を検索したり、正規表現やワイルドカードを使用したりすることもできます。

Atlas Search クエリは 集計パイプラインステージ の形式をとります。 Atlas Search には $search ステージと $searchMeta ステージがあり、 クエリパイプライン内の他の集計パイプラインライン ステージ と組み合わせて使用できます。 Atlas Search は、これらの集計パイプラインステージ内で使用できるクエリ 演算子コレクション を提供します。

詳細については、「 クエリとインデックス 」を参照してください。

インデックスとは、検索で使用する場合、簡単に検索可能な形式でデータを分類するデータ構造です。検索インデックスを利用すると、コレクション全体をスキャンする必要なしに、指定タームを含むドキュメントをすばやく取得できます。Atlas Search インデックスと MongoDB インデックス はいずれもデータの取得を迅速化しますが、同じものではないことに注意してください。検索インデックスは、本の末尾の索引のようにタームとそのタームを含むドキュメントを紐付けします。検索インデックスには、ドキュメント内のタームの位置付けなど、他の関連メタデータも含まれます。

静的マッピングを使用して、フィールドまたは複数のフィールドで Atlas Searchインデックスを作成できます。あるいは、動的マッピングを有効にして、ドキュメント内のすべての動的にインデックス付け可能なフィールドを自動的にインデックスこともできます。 Atlas Search インデックスは、多形データと埋め込みドキュメント、または入力しながら検索する検索やファセット検索などの特定のユースケースで作成できます。

詳細については、「Atlas Search インデックスの管理」を参照してください。

検索インデックスを作成する際は、データをまず一連のトークンまたはタームに変換する必要があります。アナライザが次のようなステップを通じてこのプロセスを促進します。

  • トークン化: 文字列内の単語をインデックスを作成可能なトークンに分割します。たとえば、空白と句読点で文章を区切ります。

  • 正規化: 表現を一貫させ、簡単に分析できるようにデータを整理します。たとえば、テキストを小文字に変換したり、ストップワードと呼ばれる不要な単語を削除したりします。

  • ステミング: 単語を語幹形態まで縮小します。たとえば、接尾辞、接頭辞、複数形の語形を無視します。

トークン化の明細は言語に固有であり、追加の選択が必要になる場合があります。使用するアナライザは、データとアプリケーションによって異なります。

Atlas Search はいくつかの組み込みアナライザを提供します。独自のカスタムアナライザを作成することもできます。マルチアナライザを使用して代替アナライザを指定できます。

詳細については、「 アナライザによるデータ処理 」を参照してください。

クエリ結果内の各ドキュメントには関連性スコアを付けると、クエリ結果が関連性の高いものから低いものへと順番に返されるようになります。最も単純な形式のスコアリングでは、クエリタームがドキュメントに頻繁に表示される場合は高く、クエリタームがコレクション内の多数のドキュメントにわたり表示される場合は低くなります。スコアリングはカスタマイズも可能です。特定のドメインへの検索の追尾では、多くの場合、ブースト、減少、または変更することで関連性ベースのデフォルトスコアをカスタマイズすることを意味します。

詳細については、「 スコアのドキュメント 」を参照してください。

Atlas Search インデックスの作成、およびサンプルデータに対する Atlas Search クエリの実行中に関する実践的な情報については、Atlas Search クイック スタート を試してください。