13

假设我有一个只能有一组有限值的字段。将它存储为某种 ENUM 会不会更有效(索引方面和/或存储方面)?

elasticsearch中是否有这种可能性?

一个例子是状态机中的状态名称。

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 回答