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