MongoDB 検索インデックスは、クラスターから抽出されたドキュメントを、それらのドキュメントから抽出された期間にマッピングするデータ構造です。MongoDB Search 検索インデックスを使用すると、データベースの効率的な全文検索が可能になります。
MongoDB 検索インデックスを定義すると、静的マッピングまたは動的マッピングを使用して、コレクション内でインデックスを作成するフィールドまたはフィールドタイプを指定できます。アナライザを使用して、MongoDB 検索するが string フィールドまたはクエリ文字列から検索可能なトークンを抽出する方法を定義することもできます。最後に、インデックス定義に追加の構成オプションを適用すると、 MongoDB 検索クエリのパフォーマンスと精度を向上させることができます。これには、インデックスにソース フィールドを保存するオプションや、シノニム(同意語)マッピングを定義するオプションなどがあります。
クエリ要件に従ってMongoDB検索インデックスを定義する方法については、MongoDB検索インデックスの管理を参照してください。MongoDB Searchインデックスを定義したら、「MongoDB Search インデックスの作成」チュートリアルを使用して、そのインデックスをクラスターに追加できます。MongoDB 検索インデックスを表示、編集、更新、削除する方法を学ぶには、サポートされているクライアントを参照してください。
This page describes the JSON syntax and definition options for a MongoDB Search index.
構文
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 }
オプション
フィールド | タイプ | 必要性 | 説明 |
|---|---|---|---|
| 文字列 | 任意 | インデックス作成時に string フィールドに適用するアナライザを指定します。 これを上部のみに設定し、インデックス定義のフィールドのアナライザを指定しない場合、 MongoDB Search はこのアナライザをすべてのフィールドに適用します。各フィールドに異なるアナライザを使用するには、フィールドに異なるアナライザを指定する必要があります。 省略した場合、デフォルトは標準 アナライザになります。 |
| カスタムアナライザの配列 | 任意 | このインデックスで使用するカスタム アナライザを指定します。 |
| オブジェクト | 必須 | このインデックスの異なるパスにあるフィールドのインデックス方法を指定します。 |
| ブール値またはオブジェクト | 任意 | このインデックスに対してフィールド型の動的マッピングを有効にするか、フィールドを個別に構成します。 値は次のいずれかである必要があります。
省略した場合、デフォルトは また、 重要: MongoDB 検索 は、 動的マッピングで有効にできるフィールドタイプの詳細については、MongoDB 検索する フィールドタイプを参照してください。 インデックス構成の例については、次の例を参照してください |
| 文字列 | 任意 | 自動的かつ再帰的にインデックスを付けるためのフィールドタイプのリストを含む
|
| オブジェクト | 条件付き | インデックスを作成するフィールドを指定します。動的マッピングが フィールド名の先頭にドル記号( 詳しくは、MongoDB Search インデックスのフィールド マッピングの定義を参照してください。 |
| 文字列 | 任意 | クエリ テキストで検索する前にクエリ テキストに適用するアナライザを指定します。 省略した場合、 |
| 整数 | 任意 | ドキュメント数が20億を超える場合に作成するサブインデックスの数を指定します。次の値は有効です: インデックスパーティションを使用するには、クラスターに検索ノードが必要です。 |
| ブール値または保存されたソース定義 | 任意 | returnStoredSource オプションを使用して、クエリ時検索用に保存するドキュメント内のフィールドを指定します。MongoDB 検索するのすべてのMongoDB 検索するフィールドタイプのフィールドを保存 (する)ことができます。値は次のいずれかになります。
省略した場合、デフォルトは 詳しくは、「 MongoDB Search インデックスに保存されたソース フィールドの定義 」を参照してください。 |
| 任意 | インデックスで使用する シノニム マッピング を指定します。 インデックス定義には、シノニム マッピングを 1 つだけ含めることができます。 詳しくは、「MongoDB Search インデックスでのシノニム マッピングの定義」を参照してください。 | |
| オブジェクトの配列 | 任意 | 動的マッピング用にこのインデックスで使用する typeSets を指定します。 |
| 文字列 | 必須 |
|
| オブジェクトの配列 | 必須 | 動的マッピングを使用して自動的にインデックスするフィールドタイプをオブジェクトごとに 1 つずつ指定します。 |
| 文字列 | 必須 | 自動的にインデックスを作成するフィールドタイプを指定します。動的マッピングに構成できるフィールドタイプの詳細については、 |
インデックスのトラブルシューティング
mongot プロセスがインストールまたは実行されていない
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 検索クエリのニーズを満たすためにMongoDB 検索インデックスを定義する方法については、MongoDB 検索インデックスの管理を参照してください。
クラスターにインデックスを追加する方法については、MongoDB 検索インデックスの作成を参照してください。
利用可能なインデックス構成オプションの詳細については、以下の参照ページをご覧ください。