Elasticsearch - Enum数据类型

时间:2017-04-24 22:54:55

标签: elasticsearch

假设我想存储以下文档:

{
  "item_id": 1,
  "item_price": 500,
  "currency": "USD"
}

我希望货币字段与ENUM类似,因此我可以预先定义一组值,例如:“USD”,“GBP”,“EUR”等......

我还希望每个值都与一个整数相关,比如哈希映射,所以这组值看起来像这样:

{ "USD":1, "GBP":2, "EUR":3 }

我如何映射这个字段?

2 个答案:

答案 0 :(得分:6)

你需要在索引代码中声明你的枚举,你的文档应该像这样非规范化:

{
  "item_id": 1,
  "item_price": 500,
  "currency": "USD",
  "currency_id": 1
}

对于数据类型,我建议将currency字段声明为keyword,将currency_id字段声明为byteshort,具体取决于数量您需要跟踪的货币。

答案 1 :(得分:0)

我建议使用keyword数据类型,这非常有效