keywordアナライザは、string または string の配列をパラメータとして受け入れ、それらを単一のターム(トークン)としてインデックス化します。 フィールドの完全一致のみが返されます。 すべてのテキストは元の文字大文字と小文字のままになります。
Tip
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 Search インデックスの作成」チュートリアルの手順に従って 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 アナライザは、このクエリの結果を返しません。検索語がフィールドの内容全体と一致するドキュメントのみが一致します。Standard Analyzer または Simple Analyzer を使用してフィールドにインデックスを付けると、MongoDB Search は多くの結果を返します。結果には、タイトル Class Action のドキュメントが含まれます。これらのアナライザは、次のようなトークンを作成し、クエリ語と照合させます。
analyzer | 出力トークン | マッチ action | マッチ Class Action |
|---|---|---|---|
キーワード アナライザ トークン |
| X | ✓ |
標準アナライザ トークン |
| ✓ | ✓ |
簡易アナライザ トークン |
| ✓ | ✓ |