Docs Menu
Docs Home
/
Atlas
/ /

インデックス参照

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

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

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

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

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

analyzer

文字列

任意

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

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

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

analyzers

任意

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

mappings

必須

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

mappings.dynamic

ブール値またはオブジェクト

任意

このインデックスに対してフィールド型の動的マッピングを有効にするか、フィールドを個別に構成します。

値は次のいずれかである必要があります。

  • ブール値- true に設定するとインデックス可能なフィールドタイプが再帰的にインデックスか、false に設定されるとインデックス可能なフィールドタイプのいずれも動的にインデックスれません。

  • オブジェクト- すべてのインデックス作成可能なフィールドタイプを再帰的にインデックス化するために使用する typeSet を指定します。詳しくは mappings.dynamic.typeSet を参照してください。

省略した場合、デフォルトは false になります。 false に設定されている場合は、mappings.fields を使用して静的にインデックスを作成する個々のフィールドを定義する必要があります。

また、mappings.fields を使用してフィールドを個別に設定してデフォルト設定を上書きすることもできます。 mappings.fields のフィールドの設定はデフォルト設定を上書きします。

重要: documentMongoDB Searchdocument dynamicは、false 内のすべての動的にインデックス付け可能なフィールドタイプを自動的にインデックス化します。 MongoDB Search では、 を に設定して明示的にオーバーライドしない限り、 下にネストされたすべてのドキュメントも再帰的にインデックス化されます。また、typeSets を使用して、指定されたフィールドタイプのみをインデックスように動的インデックスを構成することもできます。

動的マッピングで有効にできるフィールドタイプの詳細については、 「 MongoDB Search フィールドタイプ 」を参照してください。

インデックス構成の例については、次の例を参照してください

mappings.dynamic.typeset

オブジェクト

任意

自動的かつ再帰的にインデックスを付けるためのフィールドタイプのリストを含む typeSetsオブジェクトの名前を参照します。

mappings.dynamicブール値フラグと相互に排他的です。

重要

動的マッピングを構成可能な機能はプレビュー段階です。機能および関連するドキュメントは、プレビュー期間中にいつでも変更される可能性があります。詳しくは、「 プレビュー機能 」を参照してください。

mappings.fields

ドキュメント

条件付き

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

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

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

searchAnalyzer

string

任意

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

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

numPartitions

整数

任意

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

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

storedSource

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

任意

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

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

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

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

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

  • MongoDB 7.0+

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

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

synonyms

任意

インデックスで使用する シノニム マッピング を指定します。

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

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

typeSets

オブジェクトの配列

任意

動的マッピング用にこのインデックスで使用する typeSets を指定します。

typeSets.[n].name

文字列

必須

typeSet 構成の名前を指定します。

typeSets.[n].types

オブジェクトの配列

必須

動的マッピングを使用して自動的にインデックスするフィールドタイプをオブジェクトごとに 1 つずつ指定します。

typeSets.[n].types.[n].type

文字列

必須

自動的にインデックスを作成するフィールドタイプを指定します。動的マッピングに構成できるフィールドタイプの詳細については、「 の構成typeSet 」を参照してください。

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

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

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

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

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

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

戻る

インデックスの管理

項目一覧