Atlas SearchstringFacet
タイプを使用して、ファセット用の string フィールドをインデックスできます。これにより、そのフィールドでfacet
Collector クエリを実行できるようになります。 Atlas Search は、ファセット用のstring
フィールドのインデックス作成時にアナライザを適用しません。
Atlas Searchfacet
stringFacet
は、 タイプとしてインデックス作成されたフィールドに対する Connector クエリのみをサポートします。同じフィールドで通常の検索も実行するには、フィールドをタイプstring
としてインデックス必要があります。
埋め込まれたドキュメント内のstringフィールドをファセットするには、親フィールドをドキュメント型としてインデックス付けする必要があります。 埋め込まれたドキュメント内の string フィールドをファセットすると、Atlas Search は一致する親ドキュメントの数のみのファセット数を返します。
Atlas 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
型のプロパティを構成する
Atlas 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
型としてインデックス付けされ、クエリの次のタイプの結果が返されます。
Atlas Search
facet
コレクターを使用したクエリのメタデータ結果。Atlas Search 演算子 などの Atlas Search 演算子 を使用したクエリの検索結果。 text 、 phrase 、およびテキスト検索を実行するその他の演算子を使用します。
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
コレクターを用いてそのインデックスをクエリする方法については、「Atlas Searchでファセットを使用する方法」のチュートリアルをご覧ください。
stringFacet
を使用してページネーションされた結果でファセット検索を実行するインデックスとクエリの例については、「ページネーションされた結果でファセットを使用する」を参照してください。