フィールドデータ型
各フィールドには フィールドデータ型、または フィールドタイプ があります。このタイプは、フィールドが含むデータの種類(文字列やブール値など)とその意図された使用法を示します。たとえば、文字列を text
および keyword
フィールドの両方にインデックスできます。しかし、text
フィールドの値は 分析済み であり、全文検索用に処理されますが、keyword
文字列はフィルタリングおよびソートのためにそのまま残されます。
フィールドタイプは ファミリー によってグループ化されます。同じファミリー内のタイプは、まったく同じ検索動作を持ちますが、異なるスペース使用量やパフォーマンス特性を持つ場合があります。
現在、keyword
と text
の2つのタイプファミリーがあります。他のタイプファミリーには単一のフィールドタイプしかありません。たとえば、boolean
タイプファミリーは1つのフィールドタイプ boolean
で構成されています。
一般的なタイプ
binary
- Base64文字列としてエンコードされたバイナリ値。
boolean
true
およびfalse
の値。- キーワード
keyword
、constant_keyword
、wildcard
を含むキーワードファミリー。- 数値
- 金額を表現するために使用される
long
およびdouble
のような数値型。 - 日付
date
およびdate_nanos
を含む日付型。alias
- 既存のフィールドのエイリアスを定義します。
オブジェクトおよびリレーショナルタイプ
object
- JSONオブジェクト。
flattened
- 単一のフィールド値としての全体のJSONオブジェクト。
nested
- サブフィールド間の関係を保持するJSONオブジェクト。
join
- 同じインデックス内のドキュメントの親/子関係を定義します。
構造化データ型
- 範囲
long_range
、double_range
、date_range
、およびip_range
のような範囲型。ip
- IPv4およびIPv6アドレス。
version
- ソフトウェアバージョン。 セマンティックバージョニング の優先ルールをサポートします。
murmur3
- 値のハッシュを計算して保存します。
集約データ型
aggregate_metric_double
- 事前集約されたメトリック値。
histogram
- ヒストグラムの形式での事前集約された数値値。
テキスト検索タイプ
text
フィールドtext
およびmatch_only_text
を含むテキストファミリー。分析された非構造化テキスト。annotated-text
- 特殊なマークアップを含むテキスト。名前付きエンティティを特定するために使用されます。
completion
- 自動補完の提案に使用されます。
search_as_you_type
- 入力中の補完のための
text
-のようなタイプ。 semantic_text
- セマンティック検索 を実行するために使用されます。
token_count
- テキスト内のトークンのカウント。
ドキュメントランキングタイプ
dense_vector
- 浮動小数点値の密なベクトルを記録します。
sparse_vector
- 浮動小数点値のまばらなベクトルを記録します。
rank_feature
- クエリ時にヒットをブーストするための数値特徴を記録します。
rank_features
- クエリ時にヒットをブーストするための数値特徴を記録します。
空間データ型
その他のタイプ
percolator
- Query DSL で書かれたクエリをインデックスします。
配列
Elasticsearchでは、配列は専用のフィールドデータ型を必要としません。デフォルトでは、任意のフィールドはゼロ以上の値を含むことができますが、配列内のすべての値は同じフィールドタイプでなければなりません。詳細は 配列 を参照してください。
マルチフィールド
異なる目的のために同じフィールドを異なる方法でインデックスすることはしばしば有用です。たとえば、string
フィールドは、全文検索用に text
フィールドとしてマッピングされ、ソートや集約用に keyword
フィールドとしてマッピングされる可能性があります。あるいは、テキストフィールドを standard
アナライザー、english
アナライザー、および french
アナライザー でインデックスすることもできます。
これが マルチフィールド の目的です。ほとんどのフィールドタイプは、fields
パラメータを介してマルチフィールドをサポートしています。