Docs Menu
Docs Home
/ /

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

MongoDB Search dateFacet タイプを使用して、ファセットの日付値をインデックス化できます。

MongoDB Search は、dateFacet 型としてインデックス付けされたフィールドに対するファセット演算子クエリのみをサポートします。同じフィールドで通常の検索も実行するには、フィールドをdate 型としてインデックス必要があります。

埋め込まれたドキュメント内の文字列フィールドをファセットには、親フィールドをドキュメント型としてインデックス必要があります。埋め込まれたドキュメント内の stringフィールドをファセットと、 MongoDB Search は一致する親ドキュメントの数のみのファセット数を返します。

MongoDB Search は、ファセットの日付値を動的にインデックスしません。ファセットの日付値をインデックスには、静的マッピングを使用する必要があります。Atlas UIのビジュアル エディターまたはJSONエディターを使用して、日付フィールドを number 型としてインデックスできます。

次の制限が適用されます。

  • 配列内、または配列内のドキュメント内にある場合は、ファセット用に日付フィールドをインデックスできません。

  • MongoDB Search では、 embeddedDocumentsフィールドの一部としてインデックス付けされたフィールドを対象とする日付のファセットはサポートされていません。

    注意

    この機能に投票してフィードバックを提供するには、この MongoDB フィードバックに関する記事を使用してください。

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

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

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

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

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

    注意

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

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

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

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

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

MongoDB Search dateFacet タイプは次のパラメーターを取ります。

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

Data Type

type

string

必須

このフィールド型を識別する、人間が判読できるラベル。値はdateFacetでなければなりません。

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

次のインデックス定義の例では、released フィールドをMongoDB SearchdateFacet タイプとしてインデックス化し、 MongoDB Searchfacet (MongoDB Search 演算子)を使用してそのフィールドに対するクエリをサポートします。

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

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

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

デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。

{
"mappings": {
"dynamic": false,
"fields": {
"released": {
"type": "dateFacet"
}
}
}
}

次のインデックス定義の例では、released フィールドをdateFacet タイプとdate タイプとしてインデックス化し、クエリの結果の次のタイプを返します。

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

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

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

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

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

デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。

{
"mappings": {
"dynamic": false,
"fields": {
"released": [
{
"type": "dateFacet"
},
{
"type": "date"
}
]
}
}
}

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

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

戻る

date

項目一覧