数値のインデックス作成方法
Atlas Search number
タイプを使用して、 int32
、 int64
、 double
データ型の数値を持つフィールドをインデックスできます。 は、範囲、近似演算子を使用して、 number
タイプのインデックス付きフィールドをクエリできます。
注意
配列内の数値をクエリするには、範囲演算子のみを使用できます。
Atlas Search は、ファセットの数値を自動的にインデックスしません。 代わりに、数値フィールドで ファセット クエリを実行するには、 numberFacet を使用して数値をインデックス化する必要があります。
Atlas Search2023は、Atlas Search の結果を 並べ替える ために、 7 月 以降に作成されたインデックス内のすべての数値フィールドを自動的にインデックス化します。既存のインデックスの場合、ソートにインデックス内の数値フィールドを使用するには、インデックスを 再構築する 必要があります。 詳しくは、「既存のインデックスを更新し、 Atlas Search結果を並べ替える 」を参照してください。
動的マッピングを有効にすると、Atlas Search はnumber
型のフィールドを自動的にインデックス化します。 Atlas UI のビジュアル エディターまたはJSON エディターを使用して、 number
タイプのフィールドにインデックスを付けることができます。
number
型のインデックスを定義する
[ Refine Your Indexをクリックしてインデックスを構成します。
Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。
[Customized Configuration] をクリックします。
Field Nameドロップダウンからインデックスするフィールドを選択します。
注意
フィールド名の先頭にドル記号(
$
)が含まれるフィールドにはインデックスを付けられません。Data Typeドロップダウンをクリックし、Number を選択します。
number
型のフィールド プロパティを構成します。 詳しくは、「 フィールド プロパティ」を参照してください。[Add] をクリックします。
以下は、 number
型の JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。 フィールドの詳細については、「フィールド プロパティ」を参照してください。
{ "mappings": { "dynamic": true|false, "fields": { "<field-name>": { "type": "number", "representation": "int64|double", "indexIntegers": true|false, "indexDoubles": true|false } } } }
フィールド プロパティを構成するnumber
Atlas Search number
タイプには次のパラメーターがあります。
UI フィールド名 | JSON Option | タイプ | 必要性 | 説明 | default |
---|---|---|---|---|---|
Data Type | type | string | 必須 | このフィールド型を識別する、人間が判読できるラベル。値は number でなければなりません。 | |
Representation | representation | string | 任意 | インデックスを作成するフィールドのデータ型。 値は次のとおりです。
詳細については、以下の例を参照してください。 | double |
Index Integers | indexIntegers | ブール値 | 任意 | int32 とint64 のタイプ値をインデックス化するか省略するかを示すフラグ。 値はtrue またはfalse です。 これとindexDoubles のいずれかはtrue である必要があります。 詳細については、以下の例を参照してください。 | true |
Index Doubles | indexDoubles | ブール値 | 任意 | double 型の値をインデックス化するか省略するかを示すフラグ。 値はtrue またはfalse です。 これとindexIntegers のいずれかはtrue である必要があります。 詳細については、以下の例を参照してください。 | true |
number
型の例を試す
次のインデックス定義の例では、サンプル データ内の複数のコレクションを使用します。 サンプル データがすでにクラスターにロードされている場合は、ビジュアル エディターとJSONエディターを使用してこれらのインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。
サンプル データセットのsample_analytics.accounts
コレクションの次のインデックス定義は、64 ビット整数値を持つaccount_id
フィールドをインデックス化します。 次の例でも次のことが行われます。
account_id
フィールドの他のすべての整数値をインデックス化します。任意の小数値を丸め、
account_id
フィールドに小さな double 型の値をインデックスします。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからaccount_idを選択します。
Data Typeドロップダウンをクリックし、Number を選択します。
Number Propertiesを変更して、次のように設定します。
Representation
int64
に設定されている場合にのみ使用できます。Index Integers
true
に設定されている場合にのみ使用できます。Index Doubles
true
に設定されている場合にのみ使用できます。
[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "account_id": { "type": "number", "representation": "int64" } } } }
サンプル データセットのsample_analytics.accounts
コレクションの次のインデックス定義では、整数値がインデックス化され、 account_id
で double 値が省略されます。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからaccount_idを選択します。
Data Typeドロップダウンをクリックし、Number を選択します。
Number Propertiesを変更して、次のように設定します。
Representation
int64
に設定されている場合にのみ使用できます。Index Integers
true
に設定されている場合にのみ使用できます。Index Doubles
false
に設定されている場合にのみ使用できます。
[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "account_id": { "type": "number", "representation": "int64", "indexDoubles": false } } } }
サンプル データセットのsample_airbnb.listingsAndReviews
コレクションの次のインデックス定義では、 double
型の値がインデックス化され、 bathrooms
フィールドの32ビットと64ビットの整数値が省略されます。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからbathroomsを選択します。
Data Typeドロップダウンをクリックし、Number を選択します。
Number Propertiesを変更して、次のように設定します。
Representation
doubles
に設定されている場合にのみ使用できます。Index Integers
false
に設定されている場合にのみ使用できます。Index Doubles
true
に設定されている場合にのみ使用できます。
[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
{ "mappings": { "dynamic": false, "fields": { "bathrooms": { "type": "number", "indexIntegers": false } } } }