Docs Menu
Docs Home
/
Atlas
/ / / /

ファセット検索の string フィールドのインデックス作成方法

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タイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。

  1. [ Refine Your Indexをクリックしてインデックスを構成します。

  2. Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。

  3. [Customized Configuration] をクリックします。

  4. Field Nameドロップダウンからインデックスするフィールドを選択します。

    注意

    フィールド名の先頭にドル記号($)が含まれるフィールドにはインデックスを付けられません。

  5. [ StringFacet Data Typeドロップダウンをクリックし、[] を選択します。 このタイプの詳細については、「フィールド プロパティ」を参照してください。

  6. [Add] をクリックします。

以下は、 stringFacet型の JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。 フィールドの詳細については、「フィールド プロパティ」を参照してください。

{
"mappings": {
"dynamic": true|false,
"fields": {
"<field-name>": {
"type": "stringFacet"
}
}
}
}

Atlas Search stringFacetタイプには次のパラメーターがあります。

UI フィールド名
JSON Option
タイプ
必要性
説明

Data Type

type

string

必須

このフィールド型を識別する、人間が判読できるラベル。 値はstringFacetである必要があります。 Atlas Search は、 stringFacet型としてインデックス付けされたBSON string値を約8000 UTF- 16コード単位に切り捨てます。

次のインデックス定義の例では、 sample_mflix.moviesコレクションを使用します。 サンプル データがすでにクラスターにロードされている場合は、Atlas UI のビジュアル エディターまたはJSONエディターを使用してインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。

サンプル データセット内のsample_mflix.moviesコレクションの次のインデックス定義は、ファセット用にgenresフィールドをstringFacetとしてインデックス化します。

  1. Add Field Mappingウィンドウで、 Field Nameドロップダウンからgenresを選択します。

  2. Data Typeドロップダウンをクリックし、StringFacet を選択します。

  3. [Add] をクリックします。

{
"mappings": {
"dynamic": false,
"fields": {
"genres": {
"type": "stringFacet"
}
}
}
}

サンプル データセットsample_mflix.moviesコレクションの次のインデックス定義では、 genresフィールドをstringFacet型とstring型としてインデックス付けされ、クエリの次のタイプの結果が返されます。

  1. Add Field Mappingウィンドウで、 Field Nameドロップダウンからgenresを選択します。

  2. Data Typeドロップダウンをクリックし、StringFacet を選択します。

  3. [Add] をクリックします。

  4. ステップ1を繰り返し、 Data Typeドロップダウンから [ String ] を選択します。

  5. String Propertiesのデフォルト設定を確認し、 [ Add ] をクリックします。

{
"mappings": {
"dynamic": false,
"fields": {
"genres": [
{
"type": "stringFacet"
},
{
"type": "string"
}
]
}
}
}

facet コレクターの詳細とクエリの例については、「」を参照してください。

ファセット定義を用いてインデックスを作成し、facet コレクターを用いてそのインデックスをクエリする方法については、「Atlas Searchでファセットを使用する方法」のチュートリアルをご覧ください。

stringFacetを使用してページネーションされた結果でファセット検索を実行するインデックスとクエリの例については、「ページネーションされた結果でファセットを使用する」を参照してください。

戻る

string

項目一覧