Допустим, я хочу хранить документы, подобные приведенному ниже:

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

Я хочу, чтобы поле валюты было похоже на ENUM, поэтому я могу предварительно задать набор значений, таких как: "USD", "GBP", "EUR" и так далее ...

Я также хотел бы, чтобы каждое значение было связано с целым числом, таким как карта хешей, поэтому набор значений будет выглядеть следующим образом:

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

Как оболочка я сопоставить это поле?

4
TVC 25 Апр 2017 в 01:54

2 ответа

Лучший ответ

Вы должны объявить свой enum в своем коде индексации, и ваш документ должен быть денормализован следующим образом:

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

Что касается типов данных, я предлагаю объявить поле currency как keyword и поле currency_id как byte или short в зависимости от количества валют, которые вы нужно отслеживать.

6
Val 25 Апр 2017 в 05:06

Я предлагаю использовать keyword тип данных, это довольно эффективно

-1
Code_Worm 8 Май 2018 в 08:08
43598943