AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

マルチアナライザ

インデックス定義で multiオブジェクトを使用して、フィールドもインデックスする代替のアナライザを指定できます。デフォルト のアナライザに加えて代替のアナライザを使用してフィールドをインデックスと、デフォルトまたは代替のアナライザのいずれかを使用してコレクションを検索できます。このページでは、 multiを使用してインデックス定義で代替アナライザを指定する方法を説明します。

multiパス オプションは、 string 型のフィールドでのみ使用できます。

MongoDB Search は、multi オブジェクトの複数のレイヤーをネストすることをサポートしていません。

次の例は、sample_mflix.movies コレクション内のフィールドに対するインデックス定義を示しています。コレクションをクラスターにロードすると、Atlas UI の Visual Editor または JSON エディター、または mongosh を使用して例のインデックスを作成できます。

次のインデックス定義の例では、title フィールドに standard アナライザーを使用してインデックスを指定します。インデックス定義には、title フィールドの代替アナライザーとして lucene.french アナライザーが指定されており、その名前は frenchAnalyzer です。

次のクエリは、frenchAnalyzer という名前の代替アナライザーを使用して、string liberte を検索します。

結果のドキュメントは、frenchAnalyzer がインデックス文字列 è Nous la Libertè とタームliberte の両方を基本単語 libert に縮小したため、一致します。 MongoDB Search では、発音区別記号が削除されないため、 standardアナライザを使用した検索ではこのドキュメントが返されません。各アナライザは、インデックスとクエリに対して次のトークン(検索可能なターム)を生成します。

analyzer
Index Tokens
クエリトークン

標準アナライザ

è, nous, la, libertè

libertè

フランス語アナライザー

è, libert

libert

次のインデックス定義の例では、title フィールドと plot フィールドに対して standard アナライザーを使用したインデックスを指定します。インデックス定義では、titleフィールドとplotフィールドの代替アナライザーとして lucene.french も指定されています。

次のクエリは、frenchAnalyzer という名前の代替アナライザーを使用して、title フィールドと plot フィールドで revolution という string に一致するものを検索します。

結果に含まれるドキュメントには、title フィールドと plot フィールドの両方にクエリ用語が含まれています。各アナライザーは、結果内の各ドキュメントの title フィールドに対して、次のトークン(検索可能な用語)を生成します。

analyzer

Index Tokens

クエリトークン

2012

標準アナライザ
フランス語のアナライザ

revolution
revolution

revolution
revolution

1985

標準アナライザ
フランス語のアナライザ

revolution
revolution

revolution
revolution

2014

標準アナライザ
フランス語のアナライザ

angelsofrevolution
angelsofrevolution

revolution
revolution

1970

標準アナライザ
フランス語のアナライザ

starttherevolutionwithoutme
starttherevolutionwithout

revolution
revolution

1989

標準アナライザ
フランス語のアナライザ

larèvolutionfranèaise
revolutionfraneais

revolution
revolution

結果の5番目のドキュメントでは、frenchAnalyzertitle フィールドの発音区別符号を削除して、ドキュメントをクエリ用語に一致させました。