MongoDB SearchstringFacet タイプを使用してファセット用の string フィールドにインデックスことができます。これにより、そのフィールドに対してファセット演算子クエリを実行できます。MongoDB Search は、ファセット用に string フィールドをインデックス化する場合、アナライザを適用しません。
MongoDB Search は、stringFacet 型としてインデックス付けされたフィールドに対するファセット演算子クエリのみをサポートします。同じフィールドで通常の検索も実行するには、フィールドをタイプ string としてインデックス必要があります。
埋め込まれたドキュメント内の文字列フィールドをファセットには、親フィールドをドキュメント型としてインデックス必要があります。埋め込まれたドキュメント内の stringフィールドをファセットと、 MongoDB Search は一致する親ドキュメントの数のみのファセット数を返します。
MongoDB Search stringは、ファセットの 値を動的にインデックスません。ファセットの string 値をインデックスには、静的マッピングを使用する必要があります。Atlas UIのビジュアル エディターまたはJSONエディターを使用して、string フィールドをnumber タイプとしてインデックスできます。
stringFacet タイプのインデックスを定義する
stringFacetタイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。
インデックスを設定するには、 Refine Your Indexをクリックします。
Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。
[Customized Configuration] をクリックします。
Field Nameドロップダウンからインデックスするフィールドを選択します。
注意
フィールド名の先頭にドル記号(
$)が含まれるフィールドにはインデックスを付けられません。[ StringFacet Data Typeドロップダウンをクリックし、[] を選択します。 このタイプの詳細については、「フィールド プロパティ」を参照してください。
[Add] をクリックします。
以下は、stringFacet 型の JSON 構文です。デフォルトのインデックス定義を以下のように置き換えます。フィールドの詳細については、「フィールド プロパティ」を参照してください。
{ "mappings": { "dynamic": true|false, "fields": { "<field-name>": { "type": "stringFacet" } } } }
stringFacet タイプのプロパティの構成
MongoDB Search stringFacet タイプには次のパラメーターがあります。
UI フィールド名 | JSON Option | タイプ | 必要性 | 説明 |
|---|---|---|---|---|
Data Type |
| string | 必須 | このフィールド型を識別する、人間が判読できるラベル。値は |
stringFacet タイプの例を試す
次のインデックス定義の例では、sample_mflix.movies コレクションを使用しています。クラスターにサンプル データがすでにロードされている場合は、Atlas UI のビジュアル エディターまたは JSON エディターを使用してインデックスを構成できます。希望する構成方法を選択した後、データベースとコレクションを選択し、インデックスを改善してフィールド マッピングを追加します。
サンプルsample_mflix.movies データセット 内の コレクションの次のインデックス定義は、ファセット用にgenres フィールドをstringFacet としてインデックス化します。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからgenresを選択します。
Data Typeドロップダウンをクリックし、StringFacet を選択します。
[Add] をクリックします。
{ "mappings": { "dynamic": false, "fields": { "genres": { "type": "stringFacet" } } } }
サンプル データセットの sample_mflix.movies コレクションの次のインデックス定義では、genres フィールドが stringFacet 型と string 型としてインデックス付けされ、クエリの次のタイプの結果が返されます。
MongoDB Search
facet(MongoDB Search 演算子)を使用したクエリのメタデータ結果。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからgenresを選択します。
Data Typeドロップダウンをクリックし、StringFacet を選択します。
[Add] をクリックします。
ステップ1を繰り返し、 Data Typeドロップダウンから [ String ] を選択します。
String Propertiesのデフォルト設定を確認し、 [ Add ] をクリックします。
{ "mappings": { "dynamic": false, "fields": { "genres": [ { "type": "stringFacet" }, { "type": "string" } ] } } }
詳細
facet コレクターの詳細とクエリの例については、「例」を参照してください。
ファセット定義を使用してインデックスを作成し、facet コレクターを使用してそのインデックスをクエリする方法については、「 MongoDB Search でファセットの使用方法 」チュートリアルをご覧ください。
stringFacetを使用してページネーションされた結果でファセット検索を実行するインデックスとクエリの例については、「ページネーションされた結果でファセットを使用する」を参照してください。