フィールドデータ型

各フィールドには フィールドデータ型、または フィールドタイプ があります。このタイプは、フィールドが含むデータの種類(文字列やブール値など)とその意図された使用法を示します。たとえば、文字列を text および keyword フィールドの両方にインデックスできます。しかし、text フィールドの値は 分析済み であり、全文検索用に処理されますが、keyword 文字列はフィルタリングおよびソートのためにそのまま残されます。

フィールドタイプは ファミリー によってグループ化されます。同じファミリー内のタイプは、まったく同じ検索動作を持ちますが、異なるスペース使用量やパフォーマンス特性を持つ場合があります。

現在、keywordtext の2つのタイプファミリーがあります。他のタイプファミリーには単一のフィールドタイプしかありません。たとえば、boolean タイプファミリーは1つのフィールドタイプ boolean で構成されています。

一般的なタイプ

  • binary
  • Base64文字列としてエンコードされたバイナリ値。
  • boolean
  • true および false の値。
  • キーワード
  • keywordconstant_keywordwildcard を含むキーワードファミリー。
  • 数値
  • 金額を表現するために使用される long および double のような数値型。
  • 日付
  • date および date_nanos を含む日付型。
  • alias
  • 既存のフィールドのエイリアスを定義します。

オブジェクトおよびリレーショナルタイプ

  • object
  • JSONオブジェクト。
  • flattened
  • 単一のフィールド値としての全体のJSONオブジェクト。
  • nested
  • サブフィールド間の関係を保持するJSONオブジェクト。
  • join
  • 同じインデックス内のドキュメントの親/子関係を定義します。

構造化データ型

  • 範囲
  • long_rangedouble_rangedate_range、および ip_range のような範囲型。
  • ip
  • IPv4およびIPv6アドレス。
  • version
  • ソフトウェアバージョン。 セマンティックバージョニング の優先ルールをサポートします。
  • murmur3
  • 値のハッシュを計算して保存します。

集約データ型

テキスト検索タイプ

ドキュメントランキングタイプ

  • dense_vector
  • 浮動小数点値の密なベクトルを記録します。
  • sparse_vector
  • 浮動小数点値のまばらなベクトルを記録します。
  • rank_feature
  • クエリ時にヒットをブーストするための数値特徴を記録します。
  • rank_features
  • クエリ時にヒットをブーストするための数値特徴を記録します。

空間データ型

  • geo_point
  • 緯度と経度のポイント。
  • geo_shape
  • 多角形などの複雑な形状。
  • point
  • 任意のデカルトポイント。
  • shape
  • 任意のデカルト幾何学。

その他のタイプ

配列

Elasticsearchでは、配列は専用のフィールドデータ型を必要としません。デフォルトでは、任意のフィールドはゼロ以上の値を含むことができますが、配列内のすべての値は同じフィールドタイプでなければなりません。詳細は 配列 を参照してください。

マルチフィールド

異なる目的のために同じフィールドを異なる方法でインデックスすることはしばしば有用です。たとえば、string フィールドは、全文検索用に text フィールドとしてマッピングされ、ソートや集約用に keyword フィールドとしてマッピングされる可能性があります。あるいは、テキストフィールドを standard アナライザーenglish アナライザー、および french アナライザー でインデックスすることもできます。

これが マルチフィールド の目的です。ほとんどのフィールドタイプは、fields パラメータを介してマルチフィールドをサポートしています。