Docs Menu
Docs Home
/ /

自己管理型配置のテキストインデックス

注意

このページでは、自己管理型(Atlas以外)デプロイメントのテキスト クエリ機能について説明します。 MongoDB Atlasでホストされているデータに対して、 MongoDB は改良された全文クエリ ソリューションである Atlas Search とベクトル検索ソリューションである Atlas ベクトル検索 を提供します。

Text indexes support text search queries on fields with string content. Text indexes improve performance when searching for specific words or strings.

コレクションに含められる テキストインデックスは 1 つ だけですが、そのインデックスには複数のフィールドを含めることができます。

テキストインデックスを作成するには、次のプロトタイプを使用します。

db.<collection>.createIndex(
{
<field1>: "text",
<field2>: "text",
...
}
)

Text indexes support $text queries on self-managed deployments. You must create a text index to use $text.

オンライン ショップの clothingコレクションには、各アイテムを説明する string を含む descriptionフィールドがあります。 "silk" で作られた服を検索するには、description にテキストインデックスを作成し、"silk" に対して $text クエリを実行します。検索では、description"silk" が含まれるすべてのドキュメントが返されます。

テキストインデックスの作成方法と使用方法については、以下を参照してください。

このセクションでは、テキストインデックスの詳細について説明します。

テキストインデックスのキーと他のキーの型を持つ複合インデックスでは、インデックスがドキュメントを参照するかどうかは、テキストインデックスのフィールドのみで決定されます。その他のキーはドキュメント参照に影響を与えません。

テキストインデックスは クエリをカバー できません。

テキストインデックスは常に スパース です。 MongoDB はテキストsparse インデックスの作成時に オプションを無視します。

MongoDB、 テキストインデックスのフィールドがない、null 値を持つ、または空の配列を持つドキュメントのテキストインデックスエントリは追加されません。

テキストインデックスには、次のようなストレージとパフォーマンスの特性があります。

  • テキストインデックスは大量のRAMを消費する可能性があります。各ドキュメントの各インデックス付きフィールドには、それぞれ一意の語幹付き単語ごとに 1 つのインデックスエントリが含まれます。

  • テキストインデックスの作成は、大規模な マルチキーインデックスの作成 と似ていますが、同じデータに対して順序付き(スカラー)インデックスを作成するよりも時間がかかります。

  • 大規模なテキストインデックスを作成する場合は、ファイル記述子を十分に制限してください。推奨設定 を参照してください。

  • テキストインデックスは書き込みパフォーマンスに影響。これは、 MongoDB が新しいドキュメントの各インデックス付きフィールドに、一意の語幹付き単語にインデックスエントリを追加する必要があるためです。

  • テキストインデックスは、複数単語の string や単語の近接性情報ではなく、個々の単語を保存します。複数の単語を含むクエリは、コレクション全体がRAMに収まる方が高速に実行されます。

戻る

テキスト検索言語

項目一覧