13

Say I have a field that can only have a finite set of values. Would it not be more efficient (index-wise, and/or storage-wise) to store it as some kind of ENUM?

Is there some such possibility in elasticsearch?

An example would be the names of the states in a state machine.

4

2 に答える 2

13

はい、そうです。全文フィールドにインデックスを付けると、Elasticsearch はフィールドの長さ、フィールド内の各用語の位置と頻度などの情報にもインデックスを付けます。

これらは ENUM 値とは無関係であり、完全に除外できます。

実際、フィールドをそのようにマッピング{"index": "not_analyzed"}すると、提供した正確な値を分析せずに保存するだけでなく、上記の追加情報の保存も無効になります。

于 2013-05-23T13:18:25.347 に答える
2

アプリでハッシュマップ{ "enumVal1" => 1, "enumVal2" => 2, "enumValX" => 3 }を使用し、ES でハッシュマップの値のみを使用すると、スペースを節約できます。

于 2015-10-26T23:23:22.270 に答える