注意
MongoDB、改良された全文検索ソリューションである MongoDB Search と、セマンティック検索ソリューションである MongoDB Vector Search を提供します。テキスト インデックスの代わりに、MongoDB Search インデックス または MongoDB Vector Search インデックス を使用することをお勧めします。
このページでは、 バージョン3テキスト インデックスの動作について説明します。
大文字と小文字の区別なし
テキストインデックスは大文字と小文字を区別しません。 テキスト インデックスでは、 eやEなど、大文字と小文字を区別しません。
テキスト インデックスは、Unicode 8.0 文字データベースの大文字と小文字のフォールディング で指定されている大文字と小文字のフォールディングをサポートしています。
Common C
単純 S
トルコ語の特殊 T
発音区別符号付き文字(
éやÉなど)非ラテン文字(キリル文字の
Иやиなど)
以前のテキスト インデックス バージョンでは、発音区別符号以外のラテン文字[A-z]のみが大文字と小文字を区別しません。 以前のテキスト インデックス バージョンでは、他のすべての文字は別の文字として扱われます。
発音区別符号の区別なし
テキストインデックスは、発音区別符号を区別しません。テキストインデックスでは、é、ê、e など、発音区別符号を含む文字と含まない文字を区別しません。具体的には、テキストインデックスは、Unicode 8.0 文字データベースプロパティ リストで発音区別符号として分類されたマークを削除します。
以前のバージョンのテキスト インデックスでは、発音区別符号付きの文字は別個の文字として扱われていました。
トークン化区切り文字
トークン化では、テキストインデックスは Unicode 8.0 文字データベースプロンプトリスト の Dash、Hyphen、Pattern_Syntax、Quotation_Mark、Terminal_Punctuation、White_Space に分類される区切り文字を使用します。
例、string Il a dit qu'il «était le meilleur joueur du
monde» では、引用符(«、»)とスペースは区切り文字です。
インデックスの以前のバージョンでは、 «は用語«étaitの一部として、 »は用語monde»の一部として扱われます。
インデックス エントリ
テキストインデックスは、インデックスエントリのインデックス付きフィールドのタームをトークン化してステミングします。 インデックスは言語固有の単純な接尾辞ステミングを使用します。 コレクション内の各ドキュメントについて、テキスト インデックスでは、インデックス フィールドごとに一意の語幹付きタームごとに 1 つのインデックスエントリが保存されます。
サポートされている言語とストップワード
MongoDB はさまざまな言語の $text クエリをサポートしています。テキストインデックスは言語固有の単純な接尾辞ステミングを使用します。テキスト インデックスでは、英語の the、an、a、and などの言語固有のストップワードも削除されます。サポートされている言語のリストについては、自己管理型配置での $text クエリ言語 を参照してください。
テキストインデックスの言語を指定するには、自己管理型MongoDBのテキストインデックスの言語の指定を参照してください。
スパース プロパティ
テキストインデックスは常にスパースです。テキストインデックスを作成すると、MongoDB は sparse オプションを無視します。
既存または新しく挿入されたドキュメントにテキストインデックスのフィールドがない場合(またはフィールドが NULL または空の配列)、MongoDB はドキュメントにテキストインデックスエントリを追加しません。
詳細
テキストインデックスの制限の詳細については、「自己管理型配置のテキストインデックスのバージョン 」を参照してください。