keywordアナライザは、string または string の配列をパラメータとして受け入れ、それらを単一のターム(トークン)としてインデックスします。 フィールドの完全一致のみが返されます。 すべてのテキストは元の文字大文字と小文字のままになります。
Refine Your Index を選択した場合、Atlas UI はIndex Configurations セクション内に View text analysis of your selected index configuration というタイトルのセクションを表示します。このセクションを展開すると、Atlas UI には、keywordアナライザが各サンプル列に対して生成するインデックスと検索トークンが表示されます。 Atlas UI Visual Editor でインデックスを作成または編集すると、keywordアナライザが組み込みサンプルドキュメントとクエリ文字列用に作成するトークンが確認できます。
重要
MongoDB Search は、アナライザトークンのサイズが 32766 バイトを超える、string フィールドのインデックスません。キーワードアナライザを使用している場合、32766 バイトを超える string フィールドはインデックス化されません。
例
次のインデックス定義の例では、 keywordアナライザを使用して、sample_mflix.moviesコレクションの titleフィールドのインデックスを指定します。この例に従うには、クラスターにサンプルデータをロードし、mongosh を使用するか、MongoDB 検索インデックスの作成チュートリアルの手順に従って Atlas UI の Create a Search
Index ページに移動します。
次に、movies コレクションをデータソースとして使用し、 または Atlasmongosh UIVisual Editor またはJSON editor からインデックスを作成する例の手順に従います。
➤ [言語の選択] ドロップダウン メニューを使用して、このページの例の言語を設定します。
次のクエリは、 titleフィールドでフレーズClass Actionを検索します。
MongoDB Search がドキュメントを返すのは、lucene.keywordアナライザを使用して、クエリタームClass
Action が、フィールドのテキスト用に作成される単一のトークン Class Action と照合したためです。対照的に、 MongoDB Search では、次のクエリの結果は返されません。
db.cases.aggregate([ { "$search": { "text": { "query": "action", "path": "title" } } } ])
コレクション内の多くのドキュメントには string action が含まれていますが、keywordアナライザは検索タームがフィールドの内容全体に完全に一致するドキュメントのみに一致させます。上記のクエリでは、keywordアナライザは結果を返しません。ただし、標準アナライザ または シンプルアナライザ を使用してフィールドをインデックスすると、 MongoDB Search は結果内にタイトルフィールド値が Class
Action であるドキュメントを含む複数のドキュメントを返します。これは、次のようなトークンを作成するためです。次に、クエリタームに一致させます。
analyzer | 出力トークン | マッチ action | マッチ Class Action |
|---|---|---|---|
キーワード アナライザ トークン |
| X | ✓ |
標準アナライザ トークン |
| ✓ | ✓ |
簡易アナライザ トークン |
| ✓ | ✓ |