GeoJSON オブジェクトのインデックス作成方法
Atlas Search geo
タイプを使用して、地理的ポイントをインデックスし、座標を形成できます。 このタイプの場合、インデックス フィールドは GeoJSONオブジェクトである必要があります。 geoShape演算子とgeoWithin演算子を使用して、 geo
タイプのインデックス付きフィールドをクエリできます。
Atlas Search は、 geo
タイプのフィールドを動的にインデックスしません。 フィールドのインデックスを作成するには、 静的マッピング を使用する 必要 があります。geo
Atlas UI のビジュアル エディターまたはJSON エディターを使用して、 geo
型のフィールドをインデックスできます。
geo
型のインデックスを定義する
geo
タイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。
[ Refine Your Indexをクリックしてインデックスを構成します。
Field Mappingsセクションで、 Add Field MappingをクリックしてAdd Field Mappingウィンドウを開きます。
[Customized Configuration] をクリックします。
Field Nameドロップダウンからインデックスするフィールドを選択します。
注意
フィールド名の先頭にドル記号(
$
)が含まれるフィールドにはインデックスを付けられません。Data Typeドロップダウンをクリックし、Geo を選択します。
geo
型のフィールド プロパティを構成します。 詳しくは、「フィールド プロパティ」を参照してください。[Add] をクリックします。
以下は、 geo
型の JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。 フィールドの詳細については、「フィールド プロパティ」を参照してください。
{ "mappings": { "dynamic": false, "fields": { "<field-name>": { "indexShapes": true|false, "type": "geo" } } } }
geo
フィールド プロパティを構成する
Atlas Search geo
型は次のパラメータを取ります。
オプション | タイプ | 必要性 | 説明 | default |
---|---|---|---|---|
| string | 必須 | このフィールド型を識別する、人間が判読できるラベル。 UI 値は | |
| ブール値 | 任意 | シェイプのインデックスを作成するかどうかを示すフラグ。 デフォルトでは、Atlas Search は次のようになります。
値は次のとおりです。
|
|
geo
型の例を試す
次のインデックス定義の例では、 sample_ Airbnb.listingAnd Reviewsを使用しています コレクションのマルチキー インデックスの図。 サンプル データがすでにクラスターにロードされている場合は、Atlas UI のビジュアル エディターまたはJSONエディターを使用してインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。
次のインデックス定義では、Atlas Search geoShapeおよびgeoWithin演算子を使用して、そのフィールドに対するクエリをサポートするために、 address.location
フィールドをgeo
タイプとしてインデックス化します。
Add Field Mappingウィンドウで、 Field Nameドロップダウンからaddress.locationを選択します。
Data Typeドロップダウンをクリックし、Geo を選択します。
Geo Propertiesを変更して、 Index Shapesの値を
true
に設定します。[Add] をクリックします。
デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。
1 { 2 "mappings": { 3 "fields": { 4 "address": { 5 "type": "document", 6 "fields": { 7 "location": { 8 "indexShapes": true, 9 "type": "geo" 10 } 11 } 12 } 13 } 14 } 15 }