インデックスをレコードの集合、ドキュメントを1件のJSONレコード、マッピングを各フィールドの解釈ルールと考えてください。
1つの商品から始める
json
{"name":"Blue shoes","price":120,"created_at":"2026-09-20"}
このドキュメントはインデックスに属します。マッピングではを検索可能なテキスト、を数値、を日付として宣言できます。
インデックスをレコードの集合、ドキュメントを1件のJSONレコード、マッピングを各フィールドの解釈ルールと考えてください。
{"name":"Blue shoes","price":120,"created_at":"2026-09-20"}
このドキュメントはインデックスに属します。マッピングではを検索可能なテキスト、を数値、を日付として宣言できます。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付するproductsnamepricecreated_at200未満の商品を探すとします。数値型のpriceならElasticsearchは数値を比較できます。文字列表現では別の比較になり、数値範囲クエリの代用品として適切ではありません。
したがって同じ入力でも、対応したい検索に基づくマッピングが必要です。JSONだけではインデックス化の動作をすべて表せません。
dynamic mappingはデータ到着時にフィールドを自動推論します。探索には便利ですが、初期の予想外の値が不適切な型を確立することがあります。既知の本番フィールドを明示的に宣言し、任意の新しいフィールド名を制御します。
フィールドを追加することと既存フィールドの型変更は別です。後者では一般に新しいインデックスを作り、reindexでドキュメントをコピーする必要があります。