Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

数値のインデックス作成方法

項目一覧

  • numberタイプのインデックスを定義する
  • numberフィールド プロパティを構成する
  • number 型の例を試す

Atlas Search numberタイプを使用して、 int32int64doubleデータ型の数値を持つフィールドをインデックスできます。 範囲近似演算子を使用して、 numberタイプのインデックス付きフィールドをクエリできます。

注意

配列内の数値をクエリするには、範囲演算子のみを使用できます。

Atlas Search は、ファセットの数値を自動的にインデックスしません。 代わりに、数値フィールドで ファセット クエリを実行するには、 numberFacet を使用して数値をインデックス化する必要があります。

Atlas Search2023は、Atlas Search の結果を 並べ替える ために、 7 月 以降に作成されたインデックス内のすべての数値フィールドを自動的にインデックス化します。既存のインデックスの場合、ソートにインデックス内の数値フィールドを使用するには、インデックスを 再構築する 必要があります。 詳しくは、「既存のインデックスを更新し、 Atlas Search結果を並べ替える 」を参照してください。

動的マッピングを有効にすると、Atlas Search はnumber型のフィールドを自動的にインデックス化します。 Atlas UI のビジュアル エディターまたはJSON エディターを使用して、 numberタイプのフィールドにインデックスを付けることができます。

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

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

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

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

    注意

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

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

  6. number型のフィールド プロパティを構成します。 詳しくは、「 フィールド プロパティ」を参照してください。

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

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

{
"mappings": {
"dynamic": true|false,
"fields": {
"<field-name>": {
"type": "number",
"representation": "int64|double",
"indexIntegers": true|false,
"indexDoubles": true|false
}
}
}
}

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

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

Data Type

type

string

必須

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

Representation

representation

string

任意

インデックスを作成するフィールドのデータ型。 値は次のとおりです。

  • int64 - 精度を失うことなく大きな整数をインデックス化する場合と、double 値を整数に丸める場合。 この型を使用して大きな double 値をインデックスすることはできません。

  • double - 丸められずに大きな double 値をインデックス化する場合。

詳細については、以下の例を参照してください。

double

Index Integers

indexIntegers

ブール値

任意

int32int64のタイプ値をインデックス化するか省略するかを示すフラグ。値は またはtruefalse です。これとindexDoubles のいずれかはtrue である必要があります。詳細については、以下の例を参照してください。

true

Index Doubles

indexDoubles

ブール値

任意

double型の値をインデックス化するか省略するかを示すフラグ。値はtrue またはfalse です。これとindexIntegers のいずれかはtrue である必要があります。詳細については、以下の例を参照してください。

true

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

サンプル データセットsample_analytics.accountsコレクションの次のインデックス定義は、64 ビット整数値を持つaccount_idフィールドをインデックス化します。 次の例でも次のことが行われます。

  • account_idフィールドの他のすべての整数値をインデックス化します。

  • 任意の小数値を丸め、 account_idフィールドに小さな double 型の値をインデックスします。

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

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

  3. Number Propertiesを変更して、次のように設定します。

    • Representation int64 に設定されている場合にのみ使用できます。

    • Index Integers true に設定されている場合にのみ使用できます。

    • Index Doubles true に設定されている場合にのみ使用できます。

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

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

{
"mappings": {
"dynamic": false,
"fields": {
"account_id": {
"type": "number",
"representation": "int64"
}
}
}
}

サンプル データセットsample_analytics.accountsコレクションの次のインデックス定義では、整数値がインデックス化され、 account_idで double 値が省略されます。

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

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

  3. Number Propertiesを変更して、次のように設定します。

    • Representation int64 に設定されている場合にのみ使用できます。

    • Index Integers true に設定されている場合にのみ使用できます。

    • Index Doubles false に設定されている場合にのみ使用できます。

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

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

{
"mappings": {
"dynamic": false,
"fields": {
"account_id": {
"type": "number",
"representation": "int64",
"indexDoubles": false
}
}
}
}

サンプル データセットsample_airbnb.listingsAndReviewsコレクションの次のインデックス定義では、 double型の値がインデックス化され、 bathroomsフィールドの32ビットと64ビットの整数値が省略されます。

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

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

  3. Number Propertiesを変更して、次のように設定します。

    • Representation doubles に設定されている場合にのみ使用できます。

    • Index Integers false に設定されている場合にのみ使用できます。

    • Index Doubles true に設定されている場合にのみ使用できます。

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

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

{
"mappings": {
"dynamic": false,
"fields": {
"bathrooms": {
"type": "number",
"indexIntegers": false
}
}
}
}

戻る

knnVector