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 型の例を試す
The following index definition example uses the sample_mflix.movies collection. If you have the sample data already loaded on your cluster, you can use the Visual Editor or JSON Editor in the Atlas UI to configure the index. After you select your preferred configuration method, select the database and collection, and refine your index to add field mappings.
The following index definition for the sample_mflix.movies collection in the sample dataset indexes the genres field as stringFacet for faceting.
Add Field Mappingウィンドウで、 Field Nameドロップダウンからgenresを選択します。
Data Typeドロップダウンをクリックし、StringFacet を選択します。
[Add] をクリックします。
{ "mappings": { "dynamic": false, "fields": { "genres": { "type": "stringFacet" } } } }
The following index definition for the sample_mflix.movies collection in the sample dataset indexes the genres field as stringFacet and string types to return the following types of results for your queries:
MongoDB Search
facet(MongoDB Search 演算子)を使用したクエリのメタデータ結果。テキスト、フレーズ、テキスト検索を実行するその他の演算子などの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を使用してページネーションされた結果でファセット検索を実行するインデックスとクエリの例については、「ページネーションされた結果でファセットを使用する」を参照してください。