Elasticsearch枚举字段

时间:2013-05-23 11:23:03

标签: elasticsearch

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

在弹性搜索中是否存在某种可能性?

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

2 个答案:

答案 0 :(得分:13)

是的。索引全文字段时,Elasticsearch还会对字段长度以及字段中每个字词的位置和频率等信息编制索引。

这些与ENUM值无关,可以完全排除。

事实上,如果您将映射您的字段为{"index": "not_analyzed"},那么除了存储您提供的确切值而不尝试分析它之外,它还会禁用存储我的额外信息如上所述。

答案 1 :(得分:2)

在您的应用中使用哈希映射{ "enumVal1" => 1, "enumVal2" => 2, "enumValX" => 3 },然后在ES中仅使用hashmap中的值,这可以节省空间。