Docs Menu

インデックス参照

Atlas Searchインデックスは、Atlas クラスターのドキュメントを、それらのドキュメントから抽出されたタームにマッピングするデータ構造です。 Atlas Search インデックスを使用すると、データベースの効率的な全文検索が可能になります。

Atlas Searchインデックスを定義する と、 の静的マッピングまたは動的マッピングを使用して、コレクション内のインデックスを作成するフィールドを指定できます。アナライザを使用して、Atlas Search がstring フィールドまたはクエリ文字列から検索可能なトークンを抽出する方法を定義することもできます。最後に、インデックス定義に追加の構成オプションを適用すると、Atlas Search クエリのパフォーマンスと精度を向上させることができます。これには、インデックスにソース フィールドを保存するオプションや、シノニム(同意語)マッピングを定義するオプションなどがあります。

クエリ要件に従って Atlas Searchインデックスを定義する方法については、「 Atlas Search インデックスの作成 」を参照してください。 Atlas Searchインデックスを定義 したら、「 Atlas Search インデックスの作成 」チュートリアルを使用して、Atlas クラスターにインデックスを追加できます。 Atlas Searchインデックスを表示、編集、更新、削除する方法については、「 Atlas Search インデックスの管理 」を参照してください。

このページでは、Atlas Searchインデックスの JSON 構文と定義オプションについて説明します。

1{
2 "mappings": {
3 "dynamic": <boolean>,
4 "fields": { <field-definition> }
5 }
6}
7
1{
2 "analyzer": "<analyzer-for-index>",
3 "searchAnalyzer": "<analyzer-for-query>",
4 "mappings": {
5 "dynamic": <boolean>,
6 "fields": { <field-definition> }
7 },
8 "numPartitions": <integer>,
9 "analyzers": [ <custom-analyzer> ],
10 "storedSource": <boolean> | {
11 <stored-source-definition>
12 },
13 "synonyms": [
14 {
15 <synonym-mapping-definition>
16 }
17 ]
18}
19
フィールド
タイプ
必要性
説明

analyzer

string

任意

インデックス作成時に string フィールドに適用するアナライザを指定します。

これを上部のみに設定し、インデックス定義のフィールドのアナライザを指定しない場合、Atlas Search はこのアナライザをすべてのフィールドに適用します。 各フィールドに異なるアナライザを使用するには、 フィールドに異なるアナライザを指定する必要があります。

省略した場合、デフォルトは標準 アナライザになります。

analyzers

任意

このインデックスで使用するカスタム アナライザを指定します。

mappings

必須

このインデックスの異なるパスにあるフィールドのインデックス方法を指定します。

mappings.dynamic

ブール値

任意

このインデックスのフィールドの 動的マッピング を有効または無効にします。

trueに設定すると、Atlas Search はすべての動的にインデックス付け可能なフィールドを再帰的にインデックス化します。

falseに設定されている場合は、 mappings.fieldsを使用してインデックスを作成するフィールドを個別に指定する必要があります。

省略した場合、デフォルトは false になります。

重要: Atlas Search は、検出されたデータ型のデフォルト設定を使用して、document 内のすべてのフィールドに動的にインデックスを作成します。Atlas Search は、dynamicfalse に設定して直接オーバーライドしない限り、document 下にネストされたすべてのドキュメントを動的にインデックス化します。

インデックス構成の例については、「静的マッピングの例 」または「組み合わせマッピングの例」を参照してください

mappings.fields

ドキュメント

条件付き

インデックスを作成するフィールドを指定します。 動的マッピングが無効になっている場合にのみ必要です。

フィールド名の先頭にドル記号($)が含まれるフィールドにはインデックスを付けられません。

詳しくは「フィールドマッピングの定義」を参照してください。

searchAnalyzer

string

任意

クエリ テキストで検索する前にクエリ テキストに適用するアナライザを指定します。

省略した場合、 analyzerオプションに指定したアナライザがデフォルトで使用されます。 searchAnalyzerオプションとanalyzer オプションの両方を省略すると、 はデフォルトで 標準 アナライザを使用します。

numPartitions

整数

任意

ドキュメント数が 20 億を超える場合に作成するサブインデックスの数を指定します。次の値は有効です。124省略した場合、デフォルトは 1 になります。

インデックスパーティションを使用するには、クラスターに検索ノードが必要です。

storedSource

ブール値または保存されたソース定義

任意

returnStoredSourceオプションを使用して、クエリ時検索用に保存するドキュメント内のフィールドを指定します。 Atlas Search ではすべてのデータ型のフィールドを保存できます。 値は次のいずれかになります。

  • true: すべてのフィールドを保存

  • false、フィールドを保存しない場合

  • ストレージからincludeまたはexcludeにフィールドを指定するオブジェクト

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

  • MongoDB 5.0.6+

  • MongoDB 6.0+

  • MongoDB 7.0+

省略した場合、デフォルトは false になります。

詳しくは、 「 Atlas Search インデックスに保存されたソース フィールドの定義 」を参照してください。

synonyms

任意

インデックスで使用するシノニム マッピング。

インデックス定義には、シノニム マッピングを 1 つだけ含めることができます。

詳しくは、「Atlas Search インデックスでのシノニム マッピングの定義」を参照してください。

Atlas Search mongotプロセスがインストールまたは実行されていない場合に$searchクエリを実行すると、次のエラーが返されます。

MongoError: Remote error from mongot :: caused by :: Error connecting to localhost:28000.

mongotプロセスは、最初の Atlas Search インデックスが定義されているときにのみインストールされます。 Atlas クラスターに Atlas Search インデックスがない場合は、このエラーを解決するために少なくとも 1 つの Atlas Search インデックスを作成してください。

Atlas Search クエリのニーズを満たすために Atlas Searchインデックスを定義する方法については、「 Atlas Search インデックスの作成 」を参照してください。

Atlas クラスターにインデックスを追加する方法については、「 Atlas Search インデックスの作成 」を参照してください。

使用可能なインデックス構成オプションの詳細については、次の参照ページを参照してください。