Docs Menu
Docs Home
/
MongoDB Atlas
/ / /

Atlas Search インデックスに保存されているソース フィールドの定義

項目一覧

  • 構文
  • オプション
  • Boolean Values
  • オブジェクト

Atlas Search インデックス定義 storedSourceオプションは、Atlas Search が保存する必要があるソース ドキュメント内のフィールドを指定します。 バックエンド データベースで暗黙的なクエリ時間検索の必要性が減るため、 特定のユースケースでクエリのパフォーマンスを向上させるために構成しstoredSource 。 Atlas Search ではすべてのデータ型のフィールドを保存できます。

Atlas Search は保存済みフィールドのインデックスを作成しないため、クエリを実行するにはフィールドを個別にインデックス化する必要があります。 returnStoredSourceオプションを使用して、クエリ時に保存されたフィールドを検索することもできます。

注意

storedSource 次のいずれかのバージョンを実行している Atlas クラスターでのみ使用できます。

  • MongoDB 5.0.6+

  • MongoDB 6.0+

  • MongoDB 7.0+

保存されたフィールドを検索する方法の詳細については、「 保存されたソース フィールドを返す 」を参照してください。

インデックス定義では、 storedSourceオプションの構文は次のとおりです。

{
...,
"storedSource": true | false | {
"include" | "exclude": [
"<field-name>",
...
]
}
}

オプションは ブール値 または インデックス定義storedSource 内の オブジェクト を受け取ります。

説明
true
Atlas Search がドキュメント内のすべてのフィールドを保存する必要があることを指定します。 完全なドキュメントを保存すると、インデックス作成およびクエリ中にパフォーマンスに大きな影響を与える可能性があります。 詳細については、「ソース フィールドの保存 」を参照してください。
false
Atlas Search が元のソース ドキュメントを保存しないように指定します。 これはstoredSourceオプションのデフォルト値です。

storedSourceオプション オブジェクトは、次のいずれかのフィールドを受け入れます。

注意

オブジェクトにはincludeまたはexcludeのいずれかが含まれている必要があります。

フィールド
タイプ
説明
include
文字列の配列
保存するフィールドへのフィールド名またはドット区切りのパスを含むリスト。 指定されたフィールドに加えて、Atlas Search はデフォルトで_idも保存します。
exclude
文字列の配列
保存から除外するフィールド名またはフィールドへのドット区切りのパスを含むリスト。 指定すると、Atlas Search はここにリストされているフィールドを除く元のドキュメントを保存します。

次のインデックス例では、 sample_mflix.moviesコレクションのフィールドを使用して、 storedSourceオプションを使用して Atlas Search に保存するフィールドを構成する方法を示します。 Atlas UI のビジュアル エディターまたは JSON エディターを使用してインデックスを構成できます。

次の例では、title awards.winsコレクション内のドキュメントの フィールドと フィールドのみを保存します。ご希望の構成方法を選択したら、 sample_mflixデータベースの下のmoviesコレクションを選択します。

  1. [ Refine Your Indexをクリックしてインデックスを構成します。

  2. Stored Source Fieldsセクションで、 Specifiedをクリックします。

  3. [ Field Name列のドロップダウンから [ awards.wins ] を選択し、[ Add ] をクリックします。

  4. 保存する別のフィールドを指定するには、 Add Fieldをクリックします。

  5. [ Field Name列のドロップダウンから [ title ] を選択し、[ Add ] をクリックします。

  6. [Save Changes] をクリックします。

Atlas Search にフィールドを保存するには、インデックス定義に次の例の5から10の行を追加します。 この例では、ドット表記を使用してネストされたフィールドを指定しています。

1{
2 "mappings": {
3 ...
4 },
5 "storedSource": {
6 "include": [
7 "title",
8 "awards.wins"
9 ]
10 },
11 ...
12}

次の例では、 コレクションのドキュメントにあるdirectorsimdb.ratingを除くすべてのフィールドを保存しています。 ご希望の構成方法を選択したら、 sample_mflixデータベースの下のmoviesコレクションを選択します。

  1. インデックスを設定するには、 Refine Your Indexをクリックします。

  2. Stored Source Fieldsセクションで、 All Except Specifiedをクリックします。

  3. [ Field Name列のドロップダウンから [ directors ] を選択し、[ Add ] をクリックします。

  4. 除外する別のフィールドを指定するには、 Add Fieldをクリックします。

  5. [ Field Name列のドロップダウンから [ imdb.rating ] を選択し、[ Add ] をクリックします。

  6. [Save Changes] をクリックします。

次の例から5から10の行をインデックス定義に追加して、 フィールドを除外します。 この例では、ドット表記を使用してネストされたフィールドを指定しています。

1{
2 "mappings": {
3 ...
4 },
5 "storedSource": {
6 "exclude": [
7 "directors",
8 "imdb.rating"
9 ]
10 },
11 ...
12}

次の例では、ドキュメント内のすべてのフィールドを コレクションに保存しています。 ご希望の構成方法を選択したら、 sample_mflixデータベースの下のmoviesコレクションを選択します。

  1. インデックスを設定するには、 Refine Your Indexをクリックします。

  2. Stored Source Fieldsセクションで、 Allをクリックします。

  3. [Save Changes] をクリックします。

すべてのフィールドを保存するには、次の例のインデックス定義に行5を追加します。

1{
2 "mappings": {
3 ...
4 },
5 "storedSource": true,
6 ...
7}

戻る

uuid